[Cologne-pm] script auf mehreren CPU's starten
Cem Sakaryali
cem.sakaryali at easi.de
Fri Nov 11 01:47:35 PST 2005
Super! jetzt habe ich es verstanden.
Danke
Cem
On Fri, November 11, 2005 10:30, Michael Lamertz wrote:
> On Fri, Nov 11, 2005 at 09:38:44AM +0100, Cem Sakaryali wrote:
>> Hallo Aristotales,
>>
>>
>> Ich verstehe diesen Bereich nicht.
>>
>> run_cmd( tar => 'cvzf', $tarball, $dir );
>>
>> Heisst es hier:
>> Erzeuge eine Liste mit den Elementen
>>
>> tar,cvzf,$tarball,$dir
>>
>> wobei wenn ich das 0. Element (tar) benutze soll es aus
>> der Liste geloescht werden.
>> Oder ist die Magie in
>>
>> system { $_[ 0 ] } @_;
>>
>> Ich wuerde diesen Bereich sehr gerne uebernehmen aber will
>> auch nach 1 Woche immer noch verstehen was ich tue.
>
> Erschreckt Dich der => Operator?
>
> ---------- perldoc perlop ----------
> The "=>" operator is a synonym for the comma, but forces any word
> (consisting entirely of word charac- ters) to its left to be
> interpreted as a string (as of 5.001). If the argument on the left
> is not a word, it is first interpreted as an expression, and then
> the string value of that is used.
> ---------- perldoc perlop ----------
>
> Also, 'tar => 1,2,3' macht nix anderes, als Dir eine Liste
> ('tar', 1, 2, 3) zu erzeugen.
>
> Es ist nicht notwendig, das 1. Element zu loeschen, wenn Du system in
> der obigen Form benutzt:
>
> ---------- perldoc -f system ----------
> Like "exec", "system" allows you to lie to a program about its name
> if you use the "system PROGRAM LIST" syntax. Again, see "exec".
> ---------- perldoc -f system ----------
>
> Gibst Du also PROGRAM *ohne Komma* vor der Liste an, so ist dies das
> Programm, dass gestartet werden soll, waehrend das erste Element der
> Liste der Name ist, von dem das gestartete Programm denkt, wie es
> heisst. (Was fuer ein scheiss Satz @-)
>
> Btw.: Wusstet Ihr, dass $0 bei Perl von aussen anscheinend nicht
> ueberschrieben werden kann?
>
> Der Aufrufer:
> ---------- call.pl ----------
> #!/usr/bin/perl
>
> system {shift} @ARGV;
> ---------- call.pl ----------
>
> Ein kleines C-Prograemmchen:
> ---------- run.c ----------
> #include <stdio.h>
>
> int main(int argc, char **argv) {
> while (*argv) printf("%s\n", *argv++);
> }
> ---------- run.c ----------
>
> Und dasselbe in Perl:
> ---------- run.pl ----------
> #!/usr/bin/perl
>
> $\ = $, = "\n";
> print $0, @ARGV;
> ---------- run.pl ----------
>
> Ergebnis:
> ---------- snip ----------
> tweety:~$ ./call ./run faked 1 2 3
> faked
> 1
> 2
> 3
> tweety:~$ ./call ./run.pl faked 1 2 3
> ./run.pl
> 1
> 2
> 3
> ---------- snip ----------
>
> B0rk3n! Oder am I missing s/t?
>
>
> Mike
>
> --
> 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
> _______________________________________________
> Cologne-pm mailing list
> Cologne-pm at pm.org
> http://mail.pm.org/mailman/listinfo/cologne-pm
>
More information about the Cologne-pm
mailing list