2012-11-19 28 views
18

在哪裏可以找到關於perl中以下語法的更多信息?perl中的<DATA>語法

<DATA>__DATA__之間的關係尚不清楚。

while (my $date_string = <DATA>) { 
    chomp($date_string); 
    next if not length $date_string; 
    print "$date_string ist Unixtime ", 
     $lang_date->str2time($date_string), 
     " und ", 
    $lang_date->time2str('%d.%m.%Y %T (%Z)',$lang_date->str2time($date_string)), 
     "\n"; 
} 

__DATA__ 
1.3.1999 
1 Marz 1999 
1. Marz 1999 
1/3/1999 
+4

有趣的'__DATA__'句柄:http://stackoverflow.com/questions/4459601/how-can-i-use-data-twice,http://stackoverflow.com/a/10353338/168657 – mob

回答

27

報價the doc

__DATA__記號告訴了 編譯Perl代碼完成perl的編譯器。

一切__DATA__令牌後可以通過該文件句柄FOOBAR::DATA,其中FOOBAR是 達到__DATA__令牌時,當前包的名字讀 。

這工作只是一樣__END__確實在包「主」,但對於後__END__ 其它模塊的數據不是自動檢索, 而__DATA__後數據是。

只能使用__DATA__這一節來說明Perl中的一些與文件讀取相關的概念。它基本上是一個附加到代碼的文件,並且可以通過<DATA>輕鬆訪問此文件的內容。這就是爲什麼它在SO上非常受歡迎。 )

5

一切。 DATA會自動打開,您無需執行任何操作即可完成此操作。

什麼不清楚?您的程序似乎正在使用它。

+0

它不是我的程序,它是我在互聯網上找到的代碼的和平,並且不理解 – Skip