[Cologne-pm] >=)

Michael Lamertz mike at lamertz.net
Wed Mar 26 16:32:31 CST 2003


On Wed, Mar 26, 2003 at 06:46:35PM +0100, johannes huettemeister wrote:
> Hi,
> das ist ja wieder krass:
> ich ueberleg mal:
> >
> > > perl -ple'}{package Just::Another::Perl;&Hacker;sub AUTOLOAD{$_=$AUTOLOAD;s;::; ;g}' < /dev/null
> 
> - package macht das neue package Just:: usw.
> - &Hacker ruft die gleichnamige Sub auf, die es (noch) nicht gibt
> - aber dann von AUTOLOAD gefangen wird und $AUTOLOAD ist
>    damit der Sub Name mit vollem Package Namen
> - der Standardvariablen $_ wird dann $AUTOLOAD zugewiesen, nachdem alle (g)
>   doppelten Doppelpunkte durch ein Leerzeichen substituiert wurden

Soweit so richtig, aber *wieso*?

> Von Perl auf der Kommandozeile hab ich keine Ahnung,

Das solltest Du aendern (see below...)!

> vor allem von der lustigen } am Anfang versteh ich nix.

Nett, nicht?  Hast Du's 'mal ohne probiert?  Whoops!

> afaik oeffnet -p aber eine Datei und -l oder -e haengt ein Linefeed an.

Fast knapp... >:->

Ich empfehle 'perldoc perlrun'

Fuer den taeglichen Einsatz sollte man mindestens folgende beiden Aufrufe kennen:

    a.  -lane               "Lane"
    b.  -pi.bak -e              "Me like Pie!"

a.  Laeuft ueber die Datei (-n), splittet jede Zeile auf Whitespace
(split ' ') in das @F Array hinein (-a) und fuehrt dann die uebergebene
Expression (-e command) aus.

    ls -l | perl -lane '$sum += $F[4]; END{print $sum}'

(jaja, das Beispiel ist ein wenig an den Haaren herbeigezogen...)

b. Liest nacheinander alle angegebenen Dateien, fuehrt fuer jede Zeile
die angegebene Expression (-e command) aus, und gibt am Ende $_ aus
(-p).  Die Original-Datei wird mit der Extension .bak gesichert und das
Ergebnis ersetzt das urspruengliche Original (-i.bak).


Zu der '}' am Anfang sag' ich noch nix, aber einen Hinweis auf einen
Hinweis darauf hab' ich schon gegeben...  >:->  Das soll Aristoteles
spaeter aufloesen.  Schliesslich hat er's ja gepostet.


PS: Spread the word Leute.  Schleppt Eure Kollegen/Freunde/Feinde
(falsch Du Pfeife, frag'mal die Leute bei Cologne.pm) an, damit
Cologne.pm ein Wenig an Substanz und Traffic gewinnt!

-- 
	    Well, then let's give that Java-Wussie a beating... (me)

Michael Lamertz                        |     +49 2234 204947 / +49 171 6900 310
Sandstr. 122                           |                       mike at lamertz.net
50226 Frechen                          |                 http://www.lamertz.net
Germany                                |               http://www.perl-ronin.de 



More information about the Cologne-pm mailing list