簡體   English   中英

Perl的新手...排骨有問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM