|
Тема |
Re: lines [re: vfork] |
|
Автор |
sdg (shebang addict) |
|
Публикувано | 04.08.04 18:36 |
|
|
Ти какво искаш да направиш в крайна сметка: да изведеш съдържанието на стандартния вход на стандартния изход, или да му преброиш редовете, или и двете? И с "чист" perl ли трябва да стане това?
Разточителността ми в примера от предния ми коментар е в това, че целия файл се изчита в паметта. Иначе:
while (<STDIN>) { print; };
print "\nNumber of lines: $.\n";
Ако ти трябва само броя редове, тогава махни print командата от цикъла:
while (<STDIN>) {; };
print "\nNumber of lines: $.\n";
Това, което си писал ($lines = "@file";) ще ти събере в една scalar променлива съдържанието (повтарям, съдържанието) на целия файл, защото двойните кавички ще интерпретират масива в list, а не в scalar контекст. Ако това е, което искаш да постигнеш (целия стандартен вход в една scalar променлива), тогава:
$content = "";
while (<STDIN>) { $content .= $_; }
RTFM!
--sdg
|
| |
|
|
|