Как читать данные из файла

Это мои данные:

4601 000000000002950 000000600537060DB000000000000000 000000600537060DB 46004375010000009000282959900028252890002825280253563562 V4120 20132352013235 1003NN 10 0`.

и моя программа Perl

my$string = "4601 000000000002950 000000600537060DB000000000000000 000000600537060DB 46004375010000009000282959900028252890002825280253563562 V4120 20132352013235 1003NN 10 0";
   my $char = substr($string, 0, 2);
   print $char;

он печатает 46.

Если у меня есть эти данные в файле /home/jack/Desktop/Perl_file.txt, как я могу добиться того же результата, используя данные этого файла.


person user3138547    schedule 18.01.2014    source источник
comment
Что вы пытаетесь получить? substr($string, 0, 2) получает первые 2 символа из ввода, так что это, очевидно, 46. Что еще вы ожидаете?   -  person PMF    schedule 18.01.2014
comment
Почему вы ожидаете, что он будет делать что-то кроме вывода подстроки из первых двух символов?   -  person Rowland Shaw    schedule 18.01.2014
comment
Как получить этот вывод с помощью обработки файлов. Это только мой вопрос   -  person user3138547    schedule 18.01.2014
comment
Ах, вы хотите получить такой же вывод при чтении данных из файла? Тогда, пожалуйста, отредактируйте свой вопрос, чтобы прояснить это.   -  person PMF    schedule 18.01.2014


Ответы (1)


Я думаю, вы просто спрашиваете, как читать из файла в Perl?

# open file for reading
open my $fh, '<', "/home/jack/Desktop/Perl_file.txt" or die $!;
# iterate line by line 
while (my $line = <$fh>) {
    # now you can operate on $line. E.g., print, substr, whatever...
    print $line;
    # or like you have in your example
    my $char = substr($line, 0, 2);
    print $char, "\n";
}
close $fh;
person chrsblck    schedule 18.01.2014
comment
Понизить? Именно так вы должны читать из файла в Perl - person chrsblck; 18.01.2014
comment
+1, но вы должны всегда: использовать strict; использовать предупреждения;. - person Kenosis; 19.01.2014