• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Чтение и поиск в файле на Perl

  • Автор темы brunchik
  • Дата начала
B

brunchik

Народ выручайте!Уже не могу, второй день не могу решить проблему.Скрипт должен открывать фаил на запись и сверять с веденым с клавиатуры числом.Если оно найдено то закрыть файл, а если нет то дописать в конец данное число.Скрипт я написан но он вместо желаемого результата то если в файле есть запись он дописывает или ее нету то все равно пишит.Или один раз запишит а в остальные не хочет.Помогите решить проблему.

Код:
#!/usr/bin/perl
$s=<>;
chomp($s);
unless (-e 'file')
{
system('touch file');
}
open(file,"+<file");
@file=<file>;
STOP: foreach $file(@file)
{
chomp($file);
if($file eq $s)
{
print "Запись найдена\n";
last STOP;
}
print "Запись ненайдена\n";
print file $s,"\n";

close file;
}

close file;

print "The End\n";
<>;
 
C

callaby

Код:
#!/usr/bin/perl

use strict;
my $filename = 'file';

my $numbers = {};
if ( -e $filename ) {
open (fF,"<$filename") || die $!;
while (<fF>) {
chomp;
$numbers->{ $_ } = 1;
}
close fF;
}

print "Input your number:...\n";
my $from_klava = <>;
chomp($from_klava);
if (!exists($numbers->{$from_klava})) {
print "This record does not exist in file:$filename, append it\n";
open (tF,">>$filename") || die $!;
print tF $from_klava."\n";
close tF;
} else {
print "This record alredy exists in file:$filename, do not append\n";
}
print "The End!\n";
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!