Perl: Zeile wegwerfen wie macht man da ueblicherweise?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Meillo
Moderator
Beiträge: 9247
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Perl: Zeile wegwerfen wie macht man da ueblicherweise?

Beitrag von Meillo » 30.06.2011 09:02:48

Hoi,

ich beschaeftige mich gerade ein bisschen mit Perl. Dabei ist das Problem nicht irgendwas hinzukriegen sondern ein Gefuehl dafuer zu kriegen was ueblicher Perl-Stil ist (falls es das bei der Vielfalt ueberhaupt gibt ;-) ).

Es geht darum aus der Eingabe eine Zeile wegzuwerfen.

Der straight-forward Ansatz ist:

Code: Alles auswählen

$unused = <>;
Der ist IMO gut verstaendlich.

Es geht aber auch so: Diese Variante wuerde ich aber nur verwenden wollen wenn sie von der Perl-Community als Idiom erkannt wird. Kann mir hier jemand sagen ob das der Fall ist.
Use ed once in a while!

gxyz
Beiträge: 202
Registriert: 26.07.2010 13:54:21
Lizenz eigener Beiträge: MIT Lizenz

Re: Perl: Zeile wegwerfen wie macht man da ueblicherweise?

Beitrag von gxyz » 30.06.2011 13:53:03

TMTOWTDI! :-)
ich persönlich finde letzteres eindeutiger - wenn die Zeile keiner Variable zugewiesen wurde,
ist klar, dass sie nirgendwo verwendet wird, weil's dann schlicht nicht möglich ist ...
(Wenn Du statt der perl-typischen Hieroglyphen lieber Buchstaben hast, kannst Du stattdessen auch

Code: Alles auswählen

readline;
schreiben)

Benutzeravatar
MustrumRidcully
Beiträge: 124
Registriert: 16.06.2005 04:11:24
Lizenz eigener Beiträge: GNU General Public License
Wohnort: berlin

Re: Perl: Zeile wegwerfen wie macht man da ueblicherweise?

Beitrag von MustrumRidcully » 30.06.2011 14:55:58

dann mal herzlich willkommen bei perl, der einzigen programmiersprache auf der welt, die nach einer rsa-verschlüsselung genauso aussieht wie vorher. :D

falls dir das perldoc noch nicht bekannt ist, sei es dir wärmstens ans herz gelegt:

Code: Alles auswählen

perldoc perl
perldoc perlintro
perldoc perltoc
das sind so die ersten relevanten dokus, danach findest du deinen weg. und es gibt mit perlmonks eine ziemlich aktive, auf jeden fall aber kompetente community.

was den diamond operator angeht: er liest sowohl zeilen, als auch ganze files ein, je nach kontext.

Code: Alles auswählen

my @lines;
while (<>) {
    push @lines;   # kurzform für: push @lines, $_;
}
ist also identisch mit:

Code: Alles auswählen

my @lines = <>;
die zweite version ist allerdings schneller.
Volk ist Opium für eine Religion.

Benutzeravatar
Meillo
Moderator
Beiträge: 9247
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Perl: Zeile wegwerfen wie macht man da ueblicherweise?

Beitrag von Meillo » 30.06.2011 15:06:26

Versteht mich nicht falsch, ich habe *kein* Problem damit Perl zu programmieren oder zu verstehen. Es ist auch nicht so, dass ich zukuenftig gross Perl programmieren wollen wuerde.

Mir geht es nur darum von erfahrenen Perl-Programmierern zu hoeren was in der ``Szene'' ueblich ist und was nicht.

Womoeglich gibt es aber sowas wie Idiome bei Perl gar nicht ...
Use ed once in a while!

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Perl: Zeile wegwerfen wie macht man da ueblicherweise?

Beitrag von Liffi » 01.07.2011 09:13:15

Meillo hat geschrieben: Mir geht es nur darum von erfahrenen Perl-Programmierern zu hoeren was in der ``Szene'' ueblich ist und was nicht.
Womoeglich gibt es aber sowas wie Idiome bei Perl gar nicht ...
Ich glaube, in keiner Programmiersprache sind die Stile der Erfahrenen so unterschiedlich wie in Perl.
Wobei ich jetzt auch die zweite Version bevorzugen wuerde.

Antworten