[英]New to perl… having problems with chomp
我正在嘗試學習Perl編程,並正在使用它來讀取比賽中的文件;
#!/usr/local/bin/perl
use warnings;
open(FILE, <~/source/test.txt>);
@array = <FILE>;
$number = shift @array;
while($number--) {
chomp($key = shift @array);
chomp($message = shift @array);
print "Key: $key";
print "Message: $message";
}
print "\n";
close(FILE);
該文件包含一個數字N,然后跟隨2 * N行,這是多少個鍵/消息對。
但是,當我執行此程序時,它僅打印出最后的“消息”,而沒有其他任何內容……它不打印其他任何內容。 如果我刪除了排骨,它可以按預期工作,但是有了排骨,它就切斷了一切……為什么有什么主意?
//編輯:刪除了-w
您正在unix框上讀取DOS / Win文本文件。 使用chomp
,您將刪除“ CRLF”的“ LF”,但保留“ CR”,從而使所有行都顯示在另一行之上。
#!/usr/local/bin/perl -w
use strict; # Do use this!
use warnings;
open(my $fh, '<', "$ENV{HOME}/source/test.txt") or die $!;
my @array = <$fh>;
s/\s+\z// for @array; # Universal chomp
my $number = shift(@array);
while ($number--) {
my $key = shift(@array);
my $message = shift(@array);
print "Key: $key\n";
print "Message: $message\n";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.