Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 07:34 28.09.24 
Компютри и Интернет
   >> Perl
Всички теми Следваща тема *Кратък преглед

Тема linesнови  
Авторvfork (Нерегистриран)
Публикувано18.07.04 17:38



Po-kratuk nachin?

#!/usr/bin/perl -n
print "$.: $_";
END { print "\n\n$. lines in total in file '$ARGV'\n\n" }



Тема Re: linesнови [re: vfork]  
Авторlines (Нерегистриран)
Публикувано19.07.04 15:49



8.2.1 Problem
You need to compute the number of lines in a file.

8.2.2 Solution
Many systems have a wc program to count lines in a file:

$count = `wc -l < $file`;
die "wc failed: $?" if $?;
chomp($count);
You could also open the file and read line-by-line until the end, counting lines as you go:

open(FILE, "<", $file) or die "can't open $file: $!";
$count++ while <FILE>;
# $count now holds the number of lines read
Here's the fastest solution, assuming your line terminator really is "\n":

$count += tr/\n/\n/ while sysread(FILE, $_, 2 ** 20);



Тема Re: linesнови [re: lines]  
Автор vfork (непознат )
Публикувано19.07.04 18:01



nqmah predvid da citirame "Perl Cookbook" - povecheto (prepolagam) ot nas q znaqt naizust - kolkoto i dobra da e tazi kniga.
imah predvid da se izpolzva "pure" Perl kod i to po nai-lakonichniq nachin.
10x anyway



Тема Re: linesнови [re: vfork]  
Автор novobranec (може би?)
Публикувано22.07.04 17:33



mi to toya red
print "$.: $_";
ne e nuzen taka che kvo po lakonicno ot tova iskash



Тема Re: linesнови [re: vfork]  
Автор sdg (shebang addict)
Публикувано23.07.04 23:55



@file = <STDIN>;
$lines = scalar(@file);

Естествено, има недостатъци :-) Но, понякога лаконичните неща не са практични :-)


RTFM!
--sdg


Тема Re: lines [re: sdg]  
Авторvfork (Нерегистриран)
Публикувано03.08.04 22:30



blagodariq za otg., no ne si li mnogo raztochitelen ?

@file = <STDIN>;
$lines = scalar(@file); #?
kogato iskam da kaza:
$lines = "@file";



Тема 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


Тема Re: linesнови [re: sdg]  
Автор vfork (непознат )
Публикувано06.08.04 00:14



qvno ne si prochel 1-viq mi ?s (koito suduza otgovori na tvoite ?si; drugoto e qsno za vseki, koito znae shto e skalar i list, i kontekst). kakto i da e - lekciqta stava



Тема Re: linesнови [re: vfork]  
Автор sdg (shebang addict)
Публикувано06.08.04 13:19



О, прочетох го. Явно въпросът в него ми се е изгубил :-)


RTFM!
--sdg


Тема Re: linesнови [re: sdg]  
Автор vfork ()
Публикувано08.08.04 15:49



Zdrave da e :)




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.