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

Тема в разделе "Perl программирование", создана пользователем brunchik, 11 янв 2011.

  1. brunchik

    brunchik Гость

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

    Код (Text):
    #!/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";
    <>;
     
  2. callaby

    callaby Гость

    Код (Text):
    #!/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";
     
  3. aZa9A

    aZa9A Гость

    Не очень понял
     
Загрузка...

Поделиться этой страницей