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

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

Наш партнер Genesis Hackspace
  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 Гость

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

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