[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