2014-01-18 57 views
-3

讀取數據這是我的數據:如何從一個文件

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如何使用此文件數據實現相同的結果。

+0

你想得到什麼? 'substr($ string,0,2)'從輸入中得到前兩個字符,所以顯然是'46'。你還期望發生什麼? – PMF

+0

爲什麼你會希望它除了打印前兩個字符的子字符串之外的任何東西? –

+0

如何使用filehandling.that獲得這個輸出,這只是我的問題 – user3138547

回答

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; 
+4

Downvote?這正是您應該從'Perl' – chrsblck

+0

+1中的文件讀取的方式,但您應該*始終*:**使用strict;使用警告; **。 – Kenosis