From Susan.Dittmar at gmx.de Tue Oct 4 03:09:40 2005 From: Susan.Dittmar at gmx.de (Susan Dittmar) Date: Tue, 4 Oct 2005 12:09:40 +0200 Subject: [Cologne-pm] Treffen am 12.10.2005... In-Reply-To: <20050930220006.1FDFA16F400A@tweety.intern.perl-ronin.de> References: <20050930220006.1FDFA16F400A@tweety.intern.perl-ronin.de> Message-ID: <20051004100940.GB29525@eureca.de> Hallo Ihr, > Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des Monats, > also am 12.10.2005 Ich bin diesmal leider nicht dabei. Gru?, Susan From mike at lamertz.net Thu Oct 6 15:00:12 2005 From: mike at lamertz.net (Michael Lamertz) Date: Thu, 6 Oct 2005 22:00:12 UT Subject: [Cologne-pm] Treffen am 12.10.2005... Message-ID: <20051006220013.2FFC11C814B@tweety.intern.perl-ronin.de> Yo! Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des Monats, also am 12.10.2005, in der Sansibar Trierer Str. 41 50674 K?ln ab ca. 18:30 Dies ist eine automatisch erzeugte Nachricht. Sollte mittlerweile auf der Liste ein anderer Termin verabredet worden sein, so ist diese Mail hinf?llig. From pagaltzis at gmx.de Thu Oct 6 15:38:14 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Fri, 7 Oct 2005 00:38:14 +0200 Subject: [Cologne-pm] Treffen am 12.10.2005... In-Reply-To: <20051006220013.2FFC11C814B@tweety.intern.perl-ronin.de> References: <20051006220013.2FFC11C814B@tweety.intern.perl-ronin.de> Message-ID: <20051006223814.GB18550@klangraum> * Michael Lamertz [2005-10-07 00:05]: > Yo! Yo! Wie du aussiehst weiss ich schon gar nicht mehr, ich glaub du fehlst noch ?fter als ich. %-) Susan hat sich ja abgemeldet. Kommt wer? Das letzte Mal waren wir immerhin noch zu viert? wenn?s jetzt drei w?ren, lohnt es die M?he schon kaum noch. Regards, -- Aristotle Pagaltzis // From cem.sakaryali at easi.de Thu Oct 27 05:08:35 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Thu, 27 Oct 2005 14:08:35 +0200 (Westeuropäische Sommerzeit) Subject: [Cologne-pm] etwas OT: unix user id konvertieren in user Namen Message-ID: <46827.136.8.152.14.1130414915.squirrel@dergah> Hallo Leute, ich schreibe hier ein script um die Belegung der Festplatten zu kontrollieren. Dabei wird mit: my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime, $blksize,$blocks)= stat($i); #get the stat of the file seperat fuer jeden benutzer $TotalUsage{$uid}=$TotalUsage{$uid}+$size; berechnet. Leider ist $uid eine Nummer. Wie kann ich den Namen der User bekommen? Hier gibt es ein Name Server oder so.. fuer die user d.h. die user informationen sind nicht lokal in passwd gespeichert. passwd letzte Zeile: +::0:0::: Danke und Gruss Cem From uli at youam.net Thu Oct 27 05:33:08 2005 From: uli at youam.net (Uli Martens) Date: Thu, 27 Oct 2005 14:33:08 +0200 Subject: [Cologne-pm] etwas OT: unix user id konvertieren in user Namen In-Reply-To: <46827.136.8.152.14.1130414915.squirrel@dergah> References: <46827.136.8.152.14.1130414915.squirrel@dergah> Message-ID: <20051027123308.GE8117@ciara.youam.de> Moin On Thu, Oct 27, 2005 at 02:08:35PM +0200, Cem Sakaryali wrote: > berechnet. Leider ist $uid eine Nummer. Wie kann ich den > Namen der User bekommen? > > Hier gibt es ein Name Server oder so.. fuer die user d.h. die > user informationen sind nicht lokal in passwd gespeichert. Dazu gibt es in der libc die Funktion getpwuid(), die wohl auch mehr oder weniger eins zu eins nach Perl ?bertragen wurde. Woher die libc die Information bekommt ist eigentlich ihre Sache, ?blicherweise aus /etc/passwd oder so, wie es in /etc/nsswitch.conf konfiguriert ist (da bedeutet dann "files" ?blicherweise den Zugriff auf lokale files, mehr sollte in der Doku stehen) hth, Uli From cem.sakaryali at easi.de Thu Oct 27 05:51:01 2005 From: cem.sakaryali at easi.de (cem.sakaryali@easi.de) Date: Thu, 27 Oct 2005 14:51:01 +0200 Subject: [Cologne-pm] etwas OT: unix user id konvertieren in user Namen Message-ID: <51353.1130417461@WebMail.Space.Net> Danke Uli mit getpwuid hat es super funktioniert. Gruss Cem Uli Martens schrieb am Thu, 27 Oct 2005 14:33:08 +0200: > Moin > > On Thu, Oct 27, 2005 at 02:08:35PM +0200, Cem Sakaryali wrote: > > berechnet. Leider ist $uid eine Nummer. Wie kann ich den > > Namen der User bekommen? > > > > Hier gibt es ein Name Server oder so.. fuer die user d.h. die > > user informationen sind nicht lokal in passwd gespeichert. > > Dazu gibt es in der libc die Funktion getpwuid(), die wohl auch mehr > oder weniger eins zu eins nach Perl ?bertragen wurde. Woher die libc die > Information bekommt ist eigentlich ihre Sache, ?blicherweise aus > /etc/passwd oder so, wie es in /etc/nsswitch.conf konfiguriert ist (da > bedeutet dann "files" ?blicherweise den Zugriff auf lokale files, mehr > sollte in der Doku stehen) > > hth, > Uli > _______________________________________________ > Cologne-pm mailing list > Cologne-pm at pm.org > http://mail.pm.org/mailman/listinfo/cologne-pm -- | __| / _ \ / __|(_) | C e m S a k a r y a l i | _| | _ |\__ \| | | Eupener Str. 159, Geb. 107 |___||_| |_||___/|_| | D-50933 Koeln GERMANY Engineering GmbH | Tel: +49 221/650 496 12 Fax: 22 http://www.easi.de | mailto:cem.sakaryali at easi.de From mike at lamertz.net Mon Oct 31 15:00:06 2005 From: mike at lamertz.net (Michael Lamertz) Date: Mon, 31 Oct 2005 23:00:06 UT Subject: [Cologne-pm] Treffen am 09.11.2005... Message-ID: <20051031230006.304E81C815E@tweety.intern.perl-ronin.de> Yo! Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des Monats, also am 09.11.2005, in der Sansibar Trierer Str. 41 50674 K?ln ab ca. 18:30 Dies ist eine automatisch erzeugte Nachricht. Sollte mittlerweile auf der Liste ein anderer Termin verabredet worden sein, so ist diese Mail hinf?llig. From pagaltzis at gmx.de Sat Nov 5 19:53:33 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Sun, 6 Nov 2005 04:53:33 +0100 Subject: [Cologne-pm] =?utf-8?q?Die_Homepage_zeigt_=22News=22_von_vor_zwei?= =?utf-8?q?_Jahren=2C_oder=2C_Ein_R=C3=BCckblick?= Message-ID: <20051106035332.GH4409@klangraum> Hallo zusammen, erstmal, Mike ? wolltest du mir nicht irgendwann anno dazumal ?nen CVS-Zugang geben? Naja, so wie es aussieht, k?nnen wir die Site mittlerweile ja einstampfen ? ein Mailinglistenarchiv sollte da vorn drauf, damit das bisschen Leben, was noch da ist, sich beobachtbar ?ussert, aber fast der gesamte Rest kann entfallen. Da waren ja sogar mal Pl?ne von wegen B?chertauschskript. Als noch was los war. Anscheinend sind die meisten Interessierten, die damals vom Linux Workshop in die Cologne Perl-Users her?bergewandert waren, entweder beim Umzug in die cologne.pm oder sonst zwischenzeitlich durch Interesseverlust abhanden gekommen. Das fiel also wohl irgendwann mangels Masse flach. (Bei den Niederrheinern sieht es unwesentlich besser aus.) Ausser Cem?s in weitgestreckten Abst?nden auflodernder Fragestellerei ist seit langer Zeit nichts mehr passiert. Pro Treffen karren vielleicht vier Leute an, ich eine Weile lang selten, Mike mittlerweile nie, und da wird weder von Perl noch sonst irgendwas entfernt relevantem geredet. Man trifft sich halt aus Gewohnheit. Von ?cologne.pm? ist eigentlich nicht viel ?brig, nur ein loses B?ndel Bekanntschaften, das daran erinnert. Gruss, -- Aristoteles ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? From mike at lamertz.net Sun Nov 6 07:30:13 2005 From: mike at lamertz.net (Michael Lamertz) Date: Sun, 6 Nov 2005 16:30:13 +0100 Subject: [Cologne-pm] Die =?iso-8859-1?Q?Homepa?= =?iso-8859-1?Q?ge_zeigt_=22News=22_von_vor_zwei_Jahren=2C_oder=2C_Ein_R?= =?iso-8859-1?Q?=FCckblick?= In-Reply-To: <20051106035332.GH4409@klangraum> References: <20051106035332.GH4409@klangraum> Message-ID: <20051106153013.GS4653@lamertz.net> Hi Aristoteles, On Sun, Nov 06, 2005 at 04:53:33AM +0100, A. Pagaltzis wrote: > Hallo zusammen, > > (deprimierende Fakten snipped) da gibt's irgendwie nix gegen zu sagen. Fakt ist fakt. Leider weiss ich auch nicht, wie man da 'raus kommen kann. Real-Life hat bei mir doof zugeschlagen, so dass ich mich rar bis inexistent gemacht habe. Mittlerweile gab's 2 Reorgs auf den Websites, so dass mein rsync-Job es nicht mehr tat, und ich es einfach versaeumt hatte, den Kram a. zu fixen und b. aktuell zu halten. Ich bin gerne bereit, bei Dave Cross die Uebertragung der Group-Leadership zu beantragen. Alternativ koennte ich die Administrativa neben dem Forward des O'Reilly auch wieder aufnehmen, falls mir zumindest die Dinge die bei den stattfindenden Treffen passieren zugesandt werden. Wie's Euch lieber ist. Es gibt 'ne Menge Subscribers auf der Liste, von denen noch nie jemand 'was gesagt hat. Irgendeine Motivation, sich zu subscriben, musste doch vorhanden sein... Gruss - M. -- Michael Lamertz | mlamertz at perl-ronin.de Sandstr. 122 | http://www.perl-ronin.de 50226 Frechen | +49 171 6900 310 (mobile) Germany | +49 2234 205947 (private) From cem.sakaryali at easi.de Sun Nov 6 13:38:27 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Sun, 06 Nov 2005 22:38:27 +0100 Subject: [Cologne-pm] Sorting a hash by the hash value Message-ID: <1131313108.2512.29.camel@dervish> Habe ich im Netzt gefunden, m?glicherweise kann es f?r einen von euch N?tzlich sein. Gruss Cem ############################# Answer: First, sorting a hash by the hash key Sorting the output of a hash by the hash key is a pretty well-known recipe. It's covered in another Q&A article titled "How to sort a hash by the hash key". Sorting a hash by the hash value Sorting a hash by the hash value is a bit more difficult than sorting the hash by the key, but it's not too bad. It just requires a small "helper" function. This is easiest to demonstrate by example. Suppose we have a class of five students. Rather than give them names, we'll call them student1, student2, etc. Suppose these students just took a test, and we stored their grades in a hash (called associative arrays prior to the release of Perl 5) named grades. The hash definition might look like this: %grades = ( student1 => 90, student2 => 75, student3 => 96, student4 => 55, student5 => 76, ); If you're familiar with hashes, you know that the student names are the keys, and the test scores are the hash values. The key to sorting a hash by value is the function you create to help the sort command perform it's function. Following the format defined by the creators of Perl, you create a function I call a helper function that tells Perl how to sort the list it's about to receive. In the case of the program you're about to see, I've created two helper functions named hashValueDescendingNum (sort by hash value in descending numeric order) and hashValueAscendingNum (sort by hash value in ascending numeric order). Here's a program that prints the contents of the grades hash, sorted numerically by the hash value: #!/usr/bin/perl -w #----------------------------------------------------------------------# # printHashByValue.pl # # # # Copyright 1998 DevDaily Interactive, Inc. All Rights Reserved. # #----------------------------------------------------------------------# #----------------------------------------------------------------------# # FUNCTION: hashValueAscendingNum # # # # PURPOSE: Help sort a hash by the hash 'value', not the 'key'. # # Values are returned in ascending numeric order (lowest # # to highest). # #----------------------------------------------------------------------# sub hashValueAscendingNum { $grades{$a} <=> $grades{$b}; } #----------------------------------------------------------------------# # FUNCTION: hashValueDescendingNum # # # # PURPOSE: Help sort a hash by the hash 'value', not the 'key'. # # Values are returned in descending numeric order # # (highest to lowest). # #----------------------------------------------------------------------# sub hashValueDescendingNum { $grades{$b} <=> $grades{$a}; } %grades = ( student1 => 90, student2 => 75, student3 => 96, student4 => 55, student5 => 76, ); print "\n\tGRADES IN ASCENDING NUMERIC ORDER:\n"; foreach $key (sort hashValueAscendingNum (keys(%grades))) { print "\t\t$grades{$key} \t\t $key\n"; } print "\n\tGRADES IN DESCENDING NUMERIC ORDER:\n"; foreach $key (sort hashValueDescendingNum (keys(%grades))) { print "\t\t$grades{$key} \t\t $key\n"; } Although this demo program is fairly lengthy, you can see at the bottom of the code where the student grades are printed in ascending and descending numeric value. The output of the program looks like this: GRADES IN ASCENDING NUMERIC ORDER: 55 student4 75 student2 76 student5 90 student1 96 student3 GRADES IN DESCENDING NUMERIC ORDER: 96 student3 90 student1 76 student5 75 student2 55 student4 From mike at lamertz.net Sun Nov 6 15:00:03 2005 From: mike at lamertz.net (Michael Lamertz) Date: Sun, 6 Nov 2005 23:00:03 UT Subject: [Cologne-pm] Treffen am 09.11.2005... Message-ID: <20051106230004.088BD1CE661@tweety.intern.perl-ronin.de> Yo! Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des Monats, also am 09.11.2005, in der Sansibar Trierer Str. 41 50674 K?ln ab ca. 18:30 Dies ist eine automatisch erzeugte Nachricht. Sollte mittlerweile auf der Liste ein anderer Termin verabredet worden sein, so ist diese Mail hinf?llig. From mike at lamertz.net Sun Nov 6 15:07:14 2005 From: mike at lamertz.net (Michael Lamertz) Date: Mon, 7 Nov 2005 00:07:14 +0100 Subject: [Cologne-pm] Sorting a hash by the hash value In-Reply-To: <1131313108.2512.29.camel@dervish> References: <1131313108.2512.29.camel@dervish> Message-ID: <20051106230714.GU4653@lamertz.net> *Hurm* Ok, ich gehe 'mal von besten Absichten aus, ein bischen Leben durch Inhalte auf die Liste zu bringen, aber ein paar Anmerkungen: > # Copyright 1998 DevDaily Interactive, Inc. All Rights Reserved. Der Code ist 7 Jahre alt, und eine more perlish Loesung hat es, obwohl die Frage noch immer wieder und wieder auf beginner's Listen auftaucht, in dieser Zeit sogar in die FAQ geschafft: ---------- perldoc -q 'sort.*hash|hash.*sort' ---------- Found in /usr/share/perl/5.8/pod/perlfaq4.pod How do I sort a hash (optionally by value instead of key)? Internally, hashes are stored in a way that prevents you from imposing an order on key-value pairs. Instead, you have to sort a list of the keys or values: @keys = sort keys %hash; # sorted by key @keys = sort { $hash{$a} cmp $hash{$b} } keys %hash; # and by value Here we'll do a reverse numeric sort by value, and if two keys are identical, sort by length of key, or if that fails, by straight ASCII comparison of the keys (well, possibly modified by your locale--see perllocale). @keys = sort { $hash{$b} <=> $hash{$a} || length($b) <=> length($a) || $a cmp $b } keys %hash; How can I always keep my hash sorted? You can look into using the DB_File module and tie() using the $DB_BTREE hash bindings as documented in "In Memory Databases" in DB_File. The Tie::IxHash module from CPAN might also be instructive. ---------- perldoc -q 'sort.*hash|hash.*sort' ---------- Meine Version des Programmes, dessen Urheber uebrigens das Konzept der anonymous sub-ref nicht kapiert hat, lautet ---------- snip ---------- my %grade = ( student1 => 90, student2 => 75, student3 => 96, student4 => 55, student5 => 76, ); print "Ascending:\n", map { "\t$_ => $grade{$_}\n" } sort { $grade{$a} <=> $grade{$b} } keys %grade; print "Descending:\n", map { "\t$_ => $grade{$_}\n" } sort { $grade{$b} <=> $grade{$a} } keys %grade; ---------- snip ---------- Ich empfehle hierzu den Talk von Uri Guttman, gehalten auf der YAPC::EU in Paris. Dort hat er sich ueber die Balance zwischen wart- und lesbarem Perl-Code auf der einen Seite, und "Baby-Code", der sich nicht traut, die spracheigenen Idiome zu benutzen auf der anderen Seite, hinreichend ausgelassen. Die Variablenbezeichnung wuerde ich uebrigens im Singular formulieren, da man i.d. Regel eher auf das einzelne Element zugreift, statt auf die Gesamtmenge aller 'grades'. Das liest sich dann leichter: $grade{Michael} vs. $grades{Michael}. Das ist aber wie gesagt persoenliche Praeferenz, und haengt natuerlich davon ab, welche "Sicht" auf die Daten ueberwiegt. Ein elender Ketzer koennte sich natuerlich jetzt 'nen Typeglob anlegen, und die Gesamtheit als %grades ansprechen, den einzelnen aber als %grade. ;-) Und nochwas: Wenn Ihr solche "Artikel" Quoted, dann bitte mit Quellennennung, sonst fuehlt sich evtl. 'mal jemand gedissed, der seinen eigenen Code in unserem Mail-Archiv ergoogelt. Mike -- Michael Lamertz | mlamertz at perl-ronin.de Sandstr. 122 | http://www.perl-ronin.de 50226 Frechen | +49 171 6900 310 (mobile) Germany | +49 2234 205947 (private) From pagaltzis at gmx.de Sun Nov 6 15:08:23 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Mon, 7 Nov 2005 00:08:23 +0100 Subject: [Cologne-pm] Treffen am 09.11.2005... In-Reply-To: <20051106230004.088BD1CE661@tweety.intern.perl-ronin.de> References: <20051106230004.088BD1CE661@tweety.intern.perl-ronin.de> Message-ID: <20051106230823.GQ4409@klangraum> * Michael Lamertz [2005-11-07 00:05]: > Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des > Monats, also am 09.11.2005, Also denn. Wer ist dabei? Gruss, -- Aristoteles From pagaltzis at gmx.de Sun Nov 6 16:49:26 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Mon, 7 Nov 2005 01:49:26 +0100 Subject: [Cologne-pm] Sorting a hash by the hash value In-Reply-To: <20051106230714.GU4653@lamertz.net> References: <1131313108.2512.29.camel@dervish> <20051106230714.GU4653@lamertz.net> Message-ID: <20051107004926.GS4409@klangraum> * Michael Lamertz [2005-11-07 00:10]: > Ich empfehle hierzu den Talk von Uri Guttman, gehalten auf der > YAPC::EU in Paris. Dort hat er sich ueber die Balance zwischen > wart- und lesbarem Perl-Code auf der einen Seite, und > "Baby-Code", der sich nicht traut, die spracheigenen Idiome zu > benutzen auf der anderen Seite, hinreichend ausgelassen. Hast du irgendeinen Link oder sowas? W?rde mich interessieren, was andere Leute zu diesem Spannungsfeld denken. Gruss, -- #Aristoteles *AUTOLOAD=*_=sub{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; &Just->another->Perl->hacker; From cem.sakaryali at easi.de Sun Nov 6 23:47:17 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Mon, 07 Nov 2005 08:47:17 +0100 Subject: [Cologne-pm] Sorting a hash by the hash value In-Reply-To: <1131313108.2512.29.camel@dervish> References: <1131313108.2512.29.camel@dervish> Message-ID: <1131349637.2591.0.camel@dervish> die Quelle ist: http://www.devdaily.com/perl/edu/qanda/plqa00016/ Gruss Cem n Sun, 2005-11-06 at 22:38 +0100, Cem Sakaryali wrote: > Habe ich im Netzt gefunden, m?glicherweise kann > es f?r einen von euch N?tzlich sein. > > Gruss > Cem > > ############################# > > Answer: > > First, sorting a hash by the hash key > > Sorting the output of a hash by the hash key is a pretty well-known > recipe. It's covered in another Q&A article titled "How to sort a hash > by the hash key". > > Sorting a hash by the hash value > > Sorting a hash by the hash value is a bit more difficult than sorting > the hash by the key, but it's not too bad. It just requires a small > "helper" function. > > This is easiest to demonstrate by example. Suppose we have a class of > five students. Rather than give them names, we'll call them student1, > student2, etc. Suppose these students just took a test, and we stored > their grades in a hash (called associative arrays prior to the release > of Perl 5) named grades. > > The hash definition might look like this: > > %grades = ( > student1 => 90, > student2 => 75, > student3 => 96, > student4 => 55, > student5 => 76, > ); > > If you're familiar with hashes, you know that the student names are the > keys, and the test scores are the hash values. > > The key to sorting a hash by value is the function you create to help > the sort command perform it's function. Following the format defined by > the creators of Perl, you create a function I call a helper function > that tells Perl how to sort the list it's about to receive. In the case > of the program you're about to see, I've created two helper functions > named hashValueDescendingNum (sort by hash value in descending numeric > order) and hashValueAscendingNum (sort by hash value in ascending > numeric order). > > Here's a program that prints the contents of the grades hash, sorted > numerically by the hash value: > > #!/usr/bin/perl -w > > #----------------------------------------------------------------------# > # printHashByValue.pl > # > # > # > # Copyright 1998 DevDaily Interactive, Inc. All Rights Reserved. > # > #----------------------------------------------------------------------# > > #----------------------------------------------------------------------# > # FUNCTION: hashValueAscendingNum > # > # > # > # PURPOSE: Help sort a hash by the hash 'value', not the 'key'. > # > # Values are returned in ascending numeric order (lowest > # > # to highest). > # > #----------------------------------------------------------------------# > > sub hashValueAscendingNum { > $grades{$a} <=> $grades{$b}; > } > > > #----------------------------------------------------------------------# > # FUNCTION: hashValueDescendingNum > # > # > # > # PURPOSE: Help sort a hash by the hash 'value', not the 'key'. > # > # Values are returned in descending numeric order > # > # (highest to lowest). > # > #----------------------------------------------------------------------# > > sub hashValueDescendingNum { > $grades{$b} <=> $grades{$a}; > } > > > %grades = ( > student1 => 90, > student2 => 75, > student3 => 96, > student4 => 55, > student5 => 76, > ); > > print "\n\tGRADES IN ASCENDING NUMERIC ORDER:\n"; > foreach $key (sort hashValueAscendingNum (keys(%grades))) { > print "\t\t$grades{$key} \t\t $key\n"; > } > > print "\n\tGRADES IN DESCENDING NUMERIC ORDER:\n"; > foreach $key (sort hashValueDescendingNum (keys(%grades))) { > print "\t\t$grades{$key} \t\t $key\n"; > } > > > > Although this demo program is fairly lengthy, you can see at the bottom > of the code where the student grades are printed in ascending and > descending numeric value. > > The output of the program looks like this: > > GRADES IN ASCENDING NUMERIC ORDER: > 55 student4 > 75 student2 > 76 student5 > 90 student1 > 96 student3 > > GRADES IN DESCENDING NUMERIC ORDER: > 96 student3 > 90 student1 > 76 student5 > 75 student2 > 55 student4 > > > _______________________________________________ > Cologne-pm mailing list > Cologne-pm at pm.org > http://mail.pm.org/mailman/listinfo/cologne-pm From mike at lamertz.net Mon Nov 7 00:28:01 2005 From: mike at lamertz.net (Michael Lamertz) Date: Mon, 7 Nov 2005 09:28:01 +0100 Subject: [Cologne-pm] Treffen am 09.11.2005... In-Reply-To: <20051106230823.GQ4409@klangraum> References: <20051106230004.088BD1CE661@tweety.intern.perl-ronin.de> <20051106230823.GQ4409@klangraum> Message-ID: <20051107082801.GV4653@lamertz.net> Ho, On Mon, Nov 07, 2005 at 12:08:23AM +0100, A. Pagaltzis wrote: > * Michael Lamertz [2005-11-07 00:05]: > > Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des > > Monats, also am 09.11.2005, > > Also denn. Wer ist dabei? ok, also in Anbetracht Deiner letzten Mail und meines schlechten Gewissens: Moi, most definitely. Hab' keinen geplanten Change, hab' keine Bereitschaft, hab' keine Hundeschule die ich vertreten muss. Ja. -- 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 From mike at lamertz.net Mon Nov 7 00:41:39 2005 From: mike at lamertz.net (Michael Lamertz) Date: Mon, 7 Nov 2005 09:41:39 +0100 Subject: [Cologne-pm] Sorting a hash by the hash value In-Reply-To: <20051107004926.GS4409@klangraum> References: <1131313108.2512.29.camel@dervish> <20051106230714.GU4653@lamertz.net> <20051107004926.GS4409@klangraum> Message-ID: <20051107084138.GW4653@lamertz.net> On Mon, Nov 07, 2005 at 01:49:26AM +0100, A. Pagaltzis wrote: > * Michael Lamertz [2005-11-07 00:10]: > > Ich empfehle hierzu den Talk von Uri Guttman, gehalten auf der > > YAPC::EU in Paris. Dort hat er sich ueber die Balance zwischen > > wart- und lesbarem Perl-Code auf der einen Seite, und > > "Baby-Code", der sich nicht traut, die spracheigenen Idiome zu > > benutzen auf der anderen Seite, hinreichend ausgelassen. > > Hast du irgendeinen Link oder sowas? W?rde mich interessieren, > was andere Leute zu diesem Spannungsfeld denken. *raeusper* *blush* hatte irgendwie angenommen, dass sich dazu etwas im Netz finden laesst. Fehlanzeige. Konnte leider kein Transcript, und nur einen kurzen Kommentar auf use.perl.org finden, der aber auf den Teil des Talks nicht eingeht. Dumm gelaufen @-) -- 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 From mike at lamertz.net Mon Nov 7 00:56:12 2005 From: mike at lamertz.net (Michael Lamertz) Date: Mon, 7 Nov 2005 09:56:12 +0100 Subject: [Cologne-pm] Sorting a hash by the hash value In-Reply-To: <1131349637.2591.0.camel@dervish> References: <1131313108.2512.29.camel@dervish> <1131349637.2591.0.camel@dervish> Message-ID: <20051107085611.GX4653@lamertz.net> Hey, On Mon, Nov 07, 2005 at 08:47:17AM +0100, Cem Sakaryali wrote: > die Quelle ist: > > http://www.devdaily.com/perl/edu/qanda/plqa00016/ Danke. Gerade, wenn sowas nicht von Mailinglisten- oder News-Archiven stammt, ist die Quellen-Nennung in meinen Augen ungemein wichtig. -- Michael Lamertz | mlamertz at perl-ronin.de Sandstr. 122 | http://www.perl-ronin.de 50226 Frechen | +49 171 6900 310 (mobile) Germany | +49 2234 205947 (private) From sigel at netcologne.de Mon Nov 7 08:58:43 2005 From: sigel at netcologne.de (Alexander Sigel) Date: Mon, 07 Nov 2005 17:58:43 +0100 Subject: [Cologne-pm] [Fwd: [WsOrga] 2. CfP: German Perl Workshop 2006] Message-ID: <436F87C3.9000703@netcologne.de> zur kenntnis mit bitte um weitergabe an interessierte perlisten ... ihr seid herzlich eingeladen, vortr?ge einzureichen. insbesondere auch berichte ?ber laufende arbeiten sind willkommen. herzliche gr??e alexander sigel -------- Original-Nachricht -------- Betreff: [WsOrga] 2. CfP: German Perl Workshop 2006 Datum: Mon, 7 Nov 2005 11:12:31 +0100 Von: Steffen Schwigon An: wsorga at perl-workshop.de 2. Call for Papers / 8. Deutscher Perl-Workshop / 01.03.- 03.03.2006 Ort: Ruhr-Universit?t in Bochum Location: Ruhr-University in Bochum _English Abstract_ : The 8th German Perl-Workshop will take place from Wednesday, 01.03.2006 to Friday, 03.03.2006 and you are invited to submit proposals for talks or tutorials. We will happily accept proposals for interesting talks related to Perl. Please use http://www.perl-workshop.de/db/addtalk.epl to enter your proposal. *** Von Aschermittwoch, dem 01. M?rz 2006 bis Freitag, den 03. M?rz 2006 findet der 8. Deutsche Perl-Workshop statt. Das Organisationskomitee l?dt dich ein, Vorschl?ge f?r einen oder mehrere Beitr?ge zum n?chsten Perl-Workshop einzureichen. Unser Workshop steht und f?llt mit den Vortr?gen. ?blicherweise sind Vortr?ge 5, 20 oder 40 Minuten lang. Alle Themen, die in irgendeiner Weise mit Perl oder dem Perl-Umfeld zu tun haben, k?nnen als Vortr?ge f?r den Workshop interessant sein. Weiterhin diskutieren wir gerade die M?glichkeit, vor Ort Hackathons zu veranstalten, wobei z.B. Autoren von CPAN-Modulen nach einem Intro-Vortrag ihr Modul gemeinsam mit anderen nach Perl6/Pugs portieren k?nnten. Bitte meldet Interesse oder weitere Ideen an uns. Unter http://www.perl-workshop.de/de/2006/docs/cfp.htm steht der ausf?hrliche "Call for Papers". Verl?ngert Abgabefrist f?r die Einreichung von Vorschl?gen ist Sonntag, der 20.11.2005. Benutze bitte http://www.perl-workshop.de/db/addtalk.epl, um Deinen Vorschlag einzureichen. Wir freuen uns auf deinen Beitrag! wsorga at perl-workshop.de _______________________________________________ WsOrga mailing list WsOrga at srvh1.ecos.de http://www.ecos.de/mailman/listinfo/wsorga From pagaltzis at gmx.de Mon Nov 7 15:53:03 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Tue, 8 Nov 2005 00:53:03 +0100 Subject: [Cologne-pm] Die Homepage =?utf-8?Q?ze?= =?utf-8?Q?igt_=22News=22_von_vor_zwei_Jahren=2C_oder=2C_Ein_R=C3=BCckblic?= =?utf-8?Q?k?= In-Reply-To: <20051106153013.GS4653@lamertz.net> References: <20051106035332.GH4409@klangraum> <20051106153013.GS4653@lamertz.net> Message-ID: <20051107235303.GF29499@klangraum> * Michael Lamertz [2005-11-06 16:35]: > Leider weiss ich auch nicht, wie man da 'raus kommen kann. Da habe ich auch keine brillante Idee. Ein bisschen Promotion ?ber den Linuxworkshop et al k?nnte ebensoviel bewirken wie vor drei Jahren ? da m?sste ich mich aber erst wieder ein bisschen reinleben, ich bin schon ewig nicht mehr dagewesen und auch lange nicht mehr abonniert. > Ich bin gerne bereit, bei Dave Cross die Uebertragung der > Group-Leadership zu beantragen. Alternativ koennte ich die > Administrativa neben dem Forward des O'Reilly auch wieder > aufnehmen, falls mir zumindest die Dinge die bei den > stattfindenden Treffen passieren zugesandt werden. > > Wie's Euch lieber ist. Zuzuschicken gibt?s nicht viel ? es wird zwanglos geplaudert, aber site-relevantes kommt momentan nicht dabei herum. Vielleicht k?nnten wir diesmal vor die Plauderei eine Diskussion zu dem Thema ?Wie beleben wir die Kiste? schieben? Auf einen F?hrungswechsel poche ich nicht gerade ? ich werde auch nicht behaupten, dass ich das 1A machen werde. Ich w?rde dem Laden bloss zumindest eine gewisse Priorit?t einr?umen. Wenn du meinst, dass du das auf Dauer auch kannst, soll es mir recht sein, wenn alles bleibt wie es ist. Alles, was ich will, ist nicht tatenlos zusehen zu m?ssen. > Es gibt 'ne Menge Subscribers auf der Liste, von denen noch nie > jemand 'was gesagt hat. Irgendeine Motivation, sich zu > subscriben, musste doch vorhanden sein... Das w?sste ich auch nur zu gern? Gruss, -- Aristoteles ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? From Susan.Dittmar at gmx.de Tue Nov 8 05:08:07 2005 From: Susan.Dittmar at gmx.de (Susan Dittmar) Date: Tue, 8 Nov 2005 14:08:07 +0100 Subject: [Cologne-pm] Die =?iso-8859-1?Q?Homepa?= =?iso-8859-1?Q?ge_zeigt_=22News=22_von_vor_zwei_Jahren=2C_oder=2C_Ein_R?= =?iso-8859-1?Q?=FCckblick?= In-Reply-To: <20051107235303.GF29499@klangraum> References: <20051106035332.GH4409@klangraum> <20051106153013.GS4653@lamertz.net> <20051107235303.GF29499@klangraum> Message-ID: <20051108130807.GD5243@eureca.de> > > Irgendeine Motivation, sich zu subscriben, musste doch > > vorhanden sein... > > Das w?sste ich auch nur zu gern... Nun, bei mir war es die Hoffnung, hin und wieder Neues zum Thema Perl zu lesen. Ich nutze die Sprache fast t?glich, aber da ich mir alles selbst beigebracht habe, sind meine Programme sicher oft alles andere als elegant. Ich habe aus Euren Fragen und den Antworten schon so manches gelernt, und meist Dinge, die nur am Rande erw?hnt bzw. benutzt wurden. Etwas, wof?r ich Euch allen ziemlich dankbar bin. Gru?, Susan From pagaltzis at gmx.de Tue Nov 8 07:29:15 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Tue, 8 Nov 2005 16:29:15 +0100 Subject: [Cologne-pm] Die Homepage =?utf-8?Q?ze?= =?utf-8?Q?igt_=22News=22_von_vor_zwei_Jahren=2C_oder=2C_Ein_R=C3=BCckblic?= =?utf-8?Q?k?= In-Reply-To: <20051108130807.GD5243@eureca.de> References: <20051106035332.GH4409@klangraum> <20051106153013.GS4653@lamertz.net> <20051107235303.GF29499@klangraum> <20051108130807.GD5243@eureca.de> Message-ID: <20051108152915.GJ29499@klangraum> * Susan Dittmar [2005-11-08 14:10]: > Ich habe aus Euren Fragen und den Antworten schon so manches > gelernt, und meist Dinge, die nur am Rande erw?hnt bzw. benutzt > wurden. Etwas, wof?r ich Euch allen ziemlich dankbar bin. Das freut zu h?ren. :-) Gruss, -- Aristoteles ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? From mike at lamertz.net Tue Nov 8 06:59:07 2005 From: mike at lamertz.net (Michael Lamertz) Date: Tue, 8 Nov 2005 15:59:07 +0100 Subject: [Cologne-pm] Die =?iso-8859-1?Q?Homepa?= =?iso-8859-1?Q?ge_zeigt_=22News=22_von_vor_zwei_Jahren=2C_oder=2C_Ein_R?= =?iso-8859-1?Q?=FCckblick?= In-Reply-To: <20051108130807.GD5243@eureca.de> References: <20051106035332.GH4409@klangraum> <20051106153013.GS4653@lamertz.net> <20051107235303.GF29499@klangraum> <20051108130807.GD5243@eureca.de> Message-ID: <20051108145907.GZ4653@lamertz.net> Yo! On Tue, Nov 08, 2005 at 02:08:07PM +0100, Susan Dittmar wrote: > > Nun, bei mir war es die Hoffnung, hin und wieder Neues zum Thema > Perl zu lesen. Ich nutze die Sprache fast t?glich, aber da ich > mir alles selbst beigebracht habe, sind meine Programme sicher > oft alles andere als elegant. Dann bring' doch einfach 'mal ein Stueck "verdaechtigen" Code mit, bei dem Du denkst, "das ist nicht optimal". Da kann man doch dann 'mal verschiedene Alternativen oder Auffaelligkeiten diskutieren. -- 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 From Susan.Dittmar at gmx.de Wed Nov 9 05:38:53 2005 From: Susan.Dittmar at gmx.de (Susan Dittmar) Date: Wed, 9 Nov 2005 14:38:53 +0100 Subject: [Cologne-pm] Die =?iso-8859-1?Q?Homepa?= =?iso-8859-1?Q?ge_zeigt_=22News=22_von_vor_zwei_Jahren=2C_oder=2C_Ein_R?= =?iso-8859-1?Q?=FCckblick?= In-Reply-To: <20051108145907.GZ4653@lamertz.net> References: <20051106035332.GH4409@klangraum> <20051106153013.GS4653@lamertz.net> <20051107235303.GF29499@klangraum> <20051108130807.GD5243@eureca.de> <20051108145907.GZ4653@lamertz.net> Message-ID: <20051109133853.GC25347@eureca.de> Quoting Michael Lamertz (mike at lamertz.net): > Dann bring' doch einfach 'mal ein Stueck "verdaechtigen" Code mit, bei > dem Du denkst, "das ist nicht optimal". Da kann man doch dann 'mal > verschiedene Alternativen oder Auffaelligkeiten diskutieren. Ich werd mal schauen, was mir in den n?chsten Wochen da so in die H?nde f?llt. Kann heute aus famili?ren Gr?nden leider nicht zum Stammtisch kommen :-( Gru?, Susan From jens.gassmann at atomix.de Wed Nov 9 05:46:35 2005 From: jens.gassmann at atomix.de (Jens Gassmann) Date: Wed, 09 Nov 2005 14:46:35 +0100 Subject: =?ISO-8859-1?Q?Re=3A_=5BCologne-pm=5D_Die_Homepage_zeigt?= =?ISO-8859-1?Q?_=22News=22_von_vor_zwei_Jahren=2C_oder=2C_?= =?ISO-8859-1?Q?Ein_R=FCckblick?= In-Reply-To: <20051109133853.GC25347@eureca.de> References: <20051106035332.GH4409@klangraum> <20051106153013.GS4653@lamertz.net> <20051107235303.GF29499@klangraum> <20051108130807.GD5243@eureca.de> <20051108145907.GZ4653@lamertz.net> <20051109133853.GC25347@eureca.de> Message-ID: <4371FDBB.3070108@atomix.de> > Ich werd mal schauen, was mir in den n?chsten Wochen da so in die > H?nde f?llt. Kann heute aus famili?ren Gr?nden leider nicht zum > Stammtisch kommen :-( vielleicht k?nnen wir das ja schon hier auf der Liste diskutieren. Ich freue mich immer etwas dazu zu lernen, kann aber zeitlich nicht an den Treffen teilnehmen. Gerade heute habe ich mir zwei B?cher zum Thema guter und sauberer Perl-Code bestellt. Perl Medic und Perl Debugged - beide english aber sicher sehr spannend wenn es um sauberen Perl-Code geht. Werde euch mehr dazu berichten wenn ich sie durch habe. Viele Gr?sse Jens -- Online Software Designer Homepage [ http://www.atomix.de/ ] AISware CMS 3.0 [ http://www.aisware.de/ ] EMail: jens.gassmann at atomix.de Telefon: 0221/975 08 20 From tmildenberger at netcologne.de Wed Nov 9 11:44:57 2005 From: tmildenberger at netcologne.de (Thomas Mildenberger) Date: Wed, 9 Nov 2005 20:44:57 +0100 Subject: =?ISO-8859-1?Q?Re:_[Cologne-pm]_Die_Homepage_zeigt_=22News=22_von_vor_zwei_Jahren, _?= =?ISO-8859-1?Q?oder,_Ein_R=FCckblick?= References: <20051108130807.GD5243@eureca.de> <20051108145907.GZ4653@lamertz.net> <20051109133853.GC25347@eureca.de> Message-ID: > Ich werd mal schauen, was mir in den n?chsten Wochen da so in die > H?nde f?llt. Kann heute aus famili?ren Gr?nden leider nicht zum > Stammtisch kommen :-( ;) Immer noch Stress? ;) Gruss, Thomas P.S.: Ich bin eine Eurer Karteileichen. Ich programmiere kein perl (bis jetzt), ich bin interessierter Debian-user mit Verst?ndnisproblemen, und aufgrund meiner nervigen Nachfragen in #debian.de eingeladen worden, mal am Stammtisch teilzunehmen. Dies habe ich vor. Wahrscheinlich aber erst n?chstes Jahr, da ich dann guter Hoffnung bin, wieder etwas mehr Zeit zu haben. Also, lasst zumindest die Institution nicht sterben. Wenn ich dann komme, gebe ich auch einen aus! > Gru?, > Susan > _______________________________________________ > Cologne-pm mailing list > Cologne-pm at pm.org > http://mail.pm.org/mailman/listinfo/cologne-pm From pagaltzis at gmx.de Wed Nov 9 15:58:57 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Thu, 10 Nov 2005 00:58:57 +0100 Subject: [Cologne-pm] =?utf-8?q?F=C3=BCr_die_heute_abend_Anwesenden?= Message-ID: <20051109235857.GL29499@klangraum> Hallo Mike, Phillip und Detlef, hier ist der erw?hnte Link zur Ingenieursleistungsgeschichte: Gruss, -- Aristoteles Pagaltzis // From cem.sakaryali at easi.de Thu Nov 10 02:52:11 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Thu, 10 Nov 2005 11:52:11 +0100 (Westeuropäische Normalzeit) Subject: [Cologne-pm] script auf mehreren CPU's starten Message-ID: <29583.136.8.152.14.1131619931.squirrel@dergah> Hallo, ich habe ein perl script, geschrieben um directorys zu gzippen und taren. Anschliessend werden die tar files auf eine andere Platte geschoben. ablauf: gzip dir1/* tar dir1.tar dir1/ mv dir1.tar blabla/backup gzip dir2/* tar dir2.tar dir2/ mv dir2.tar blabla/backup gzip dir3/* tar dir3.tar dir3/ mv dir3.tar blabla/backup gzip dir4/* tar dir4.tar dir4/ mv dir4.tar blabla/backup gzip, tar und mv mache ich mit system () Meine Frage ist, da die einzelne Dir's mitteinander nichts zutun haben wuerde ich sie parallel auf mehreren maschienen starten. Wie kann ich dies machen? Danke und Gruss Cem Hier mein script. ################### use strict; my $DirectoryWhereToPut = '/backup'; # dieser Hash ist fuer zukuenftige sachen gedacht. # Ist hier eigentlich nicht notwendig my %hash = ( # directory name directory where to put a => 'cem/a' , b => 'cem/b' , c => 'cem/c' , d => 'cem/d' , ); my ($stund,$min,$sec,$tag,$monat,$jahr)=get_time (); foreach my $Dir (keys %hash) { my $TarFileName = "$Dir"."BACKUP"."_"."$jahr"."_"."$monat"."_"."$tag\.tar"; CompressFile ($Dir,$TarFileName); MoveFile ($TarFileName,$DirectoryWhereToPut); } sub CompressFile { my ($Dir,$TarFileName) =@_; # gzip it system ("gzip -rf $Dir/\*"); print "gzip $Dir done\n"; # tar it system ("tar cvf $TarFileName $Dir/\*"); print "tar $TarFileName done\n"; return; } sub MoveFile { my ($TarFileName,$DirectoryWhereToPut) =@_; # move it to DirectoryWhereToPut system ("mv $TarFileName $DirectoryWhereToPut"); print "move $TarFileName to $DirectoryWhereToPut done\n"; return; } sub get_time { my ($sec,$min,$stund,$tag,$monat,$jahr,$junk,$day_of_year)=localtime(); $tag= sprintf "%2.2d",$tag; $monat=sprintf "%2.2d",$monat+1; return ($stund,$min,$sec,$tag,$monat,($jahr+1900)); } From Susan.Dittmar at gmx.de Thu Nov 10 03:11:00 2005 From: Susan.Dittmar at gmx.de (Susan Dittmar) Date: Thu, 10 Nov 2005 12:11:00 +0100 Subject: =?iso-8859-1?B?PT9JU08tODg1OS0xP1E/?= =?iso-8859-1?B?UmU6X1tDb2xvZ25lLXBtXV9EaWVfSG9tZXBhZ2VfemVpZ3RfPTIyTmV3?= =?iso-8859-1?B?cz0yMl92b25fdm9yX3p3ZWlfSmFocmVuLCBfPz0gb2RlciwgRWluIFL8?= =?iso-8859-1?Q?ckblick?= In-Reply-To: References: <20051108130807.GD5243@eureca.de> <20051108145907.GZ4653@lamertz.net> <20051109133853.GC25347@eureca.de> Message-ID: <20051110111100.GD11645@eureca.de> Quoting Thomas Mildenberger (tmildenberger at netcologne.de): > > Kann heute aus famili?ren Gr?nden leider nicht zum > > Stammtisch kommen :-( > > ;) Immer noch Stress? ;) Ja. Wird auch so schnell nicht aufh?ren, es sei denn, ich schmei? ihn raus. Manche Probleme lassen sich halt nicht so mal eben schnell l?sen... Ich hoffe, das n?chste Mal blockiert es mir nicht wieder den Stammtisch! Gru?, Susan From pagaltzis at gmx.de Thu Nov 10 10:30:14 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Thu, 10 Nov 2005 19:30:14 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <29583.136.8.152.14.1131619931.squirrel@dergah> References: <29583.136.8.152.14.1131619931.squirrel@dergah> Message-ID: <20051110183014.GN29499@klangraum> Hi Cem, * Cem Sakaryali [2005-11-10 11:55]: > Meine Frage ist, da die einzelne Dir's mitteinander nichts > zutun haben wuerde ich sie parallel auf mehreren maschienen > starten. Wie kann ich dies machen? Auf mehreren Maschinen, oder auf mehreren CPUs? Oder? was? :-) Ehrlich gesagt w?rde ich f?r diese Aufgabe garkein Perl schreiben, sondern einfach Shell verwenden und die Parallelausf?hrung per ?blicher Jobkontrolle erledigen. Diese Aufgaben sind schliesslich der ganze Lebenssinn der Shell. Zum Skript ein Haufen Kommentare: > my $DirectoryWhereToPut = '/backup'; Der englische Begriff daf?r ist ?brigens ?destination?. > my ($stund,$min,$sec,$tag,$monat,$jahr)=get_time (); > > foreach my $Dir (keys %hash) { > my $TarFileName = > "$Dir"."BACKUP"."_"."$jahr"."_"."$monat"."_"."$tag\.tar"; > CompressFile ($Dir,$TarFileName); > MoveFile ($TarFileName,$DirectoryWhereToPut); > } Das ist in vielerlei Hinsicht unsch?n. Als allerallererstes: bitte Variablen nicht allein in Anf?hrungszeicehn setzen. Perl ist keine Shell. (Ja, es gibt einen subtilen Unterschied ? der zeigt sich zB. bei Referenzen, die mit Anf?hrungszeichen nicht funktionieren.) Der Backslash ist ?brigens ?berfl?ssig. Ausserdem baust du den immer gleichen String aus denselben drei von sechs Variablen zusammen ? die anderen drei werden garnicht verwendet. Sch?ner ist es, weniger Code zu schreiben, indem du einfach die POSIX-Funktion `strftime` verwendest ? sowas wie ein `printf` f?r Datums- und Zeitangaben. Und ausserdem: ist es deine Absicht, dass zwischen $Dir und dem String ?BACKUP? kein Verzeichnistrenner steht? Im Grossen und Ganzen ist es anzuraten, Pfade mit den Funktionen aus File::Spec zusammenzubauen, statt sie mit blossen String-Operationen zusammenzukleben. > sub CompressFile { > my ($Dir,$TarFileName) =@_; > # gzip it > system ("gzip -rf $Dir/\*"); > print "gzip $Dir done\n"; > # tar it > system ("tar cvf $TarFileName $Dir/\*"); > print "tar $TarFileName done\n"; > return; > } Warum gzippst du die Dateien alle einzeln und packst sie dann in einen unkomprimierten Tarball? W?re es andersrum nicht viel sinnvoller? > sub MoveFile { > my ($TarFileName,$DirectoryWhereToPut) =@_; > # move it to DirectoryWhereToPut > system ("mv $TarFileName $DirectoryWhereToPut"); > print "move $TarFileName to $DirectoryWhereToPut done\n"; > return; > } `system( $langer_string )` ist unsch?n. Enthalten deine Dateinamen zuf?llig mal Leerzeichen oder andere Metazeichen, hast du ein Problem. Eindeutig und sicher ist `system( $programm, @parameter )`. > sub get_time { > my ($sec,$min,$stund,$tag,$monat,$jahr,$junk,$day_of_year)=localtime(); > $tag= sprintf "%2.2d",$tag; > $monat=sprintf "%2.2d",$monat+1; > return ($stund,$min,$sec,$tag,$monat,($jahr+1900)); > } Anmerkung am Rande: du kannst auch einfach `%2d` schreiben ? ich glaube nicht, dass du tats?chlich an Nachkommastellen interessiert bist? Summa summarum w?rde ich dieses Skript so oder ?hnlich schreiben: #!/usr/bin/perl use strict; use warnings; use Getopt::Long; use POSIX qw( strftime ); GetOptions( 'destdir|d=s' => \( my $opt_destination = '/backup' ), 'srcdir|s=s' => \( my %opt_srcdir ), ); if( not %opt_srcdir ) { %opt_srcdir = ( # directory name directory where to put a => 'cem/a' , b => 'cem/b' , c => 'cem/c' , d => 'cem/d' , ); } my $ymd = strftime '%Y_%m_%d', localtime; foreach my $dir ( keys %opt_srcdir ) { my $tarball = "${dir}BACKUP_${ymd}.tar.gz"; run_cmd( tar => 'cvzf', $tarball, $dir ); run_cmd( mv => $tarball, $opt_destination ); } sub run_cmd { system { $_[ 0 ] } @_; print "Done: @_\n"; } (Code ohne Gew?hr.) Das ist etwas hakelig, weil dein Mapping-Hash noch nicht richtig verwendet wird? aber naja, es ist halt zu erkennen, wie es aussehen sollte. Um es richtig rund zu machen fehlen da jetzt noch etwas POD und ein paar Aufrufe von Pod::Usage. Gruss, -- #Aristoteles *AUTOLOAD=*_=sub{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; &Just->another->Perl->hacker; From cem.sakaryali at easi.de Thu Nov 10 12:11:56 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Thu, 10 Nov 2005 21:11:56 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110183014.GN29499@klangraum> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> Message-ID: <1131653516.2581.61.camel@dervish> Hi Aristoteles, Eine Anmerkung am Rande, kann man bei unserer Mailingliste Reply To: cologne-pm at pm.org einstellen? Wenn ich einfach reply mache geht es nur an den sender. Wenn man reply to all macht bekommt der sender die Mail 2 mal. Z.B wenn Mike mir antwortet bekomme ich die Mail 2 mal. On Thu, 2005-11-10 at 19:30 +0100, A. Pagaltzis wrote: > Hi Cem, > > * Cem Sakaryali [2005-11-10 11:55]: > > Meine Frage ist, da die einzelne Dir's mitteinander nichts > > zutun haben wuerde ich sie parallel auf mehreren maschienen > > starten. Wie kann ich dies machen? > > Auf mehreren Maschinen, oder auf mehreren CPUs? Oder? was? :-) Eigentlich auf mehreren Maschinenen wobei jeder von denen 2 CPUs hat. Also beides :) Also 2 Maschinen fuer 4 directorys. Ich habe das Modul fork gefunden, ich denke dieses Modul kann auf eine Maschiene 2 prozesse erzeugen. Leider geh?rt fork nich zu standart perl und ich habe keine Ahnung ob es sich auf meiner Maschiene installieren l?sst. > > Ehrlich gesagt w?rde ich f?r diese Aufgabe garkein Perl > schreiben, sondern einfach Shell verwenden und die > Parallelausf?hrung per ?blicher Jobkontrolle erledigen. Diese > Aufgaben sind schliesslich der ganze Lebenssinn der Shell. > > Zum Skript ein Haufen Kommentare: > > > my $DirectoryWhereToPut = '/backup'; > > Der englische Begriff daf?r ist ?brigens ?destination?. > > > my ($stund,$min,$sec,$tag,$monat,$jahr)=get_time (); > > > > foreach my $Dir (keys %hash) { > > my $TarFileName = > > "$Dir"."BACKUP"."_"."$jahr"."_"."$monat"."_"."$tag\.tar"; > > CompressFile ($Dir,$TarFileName); > > MoveFile ($TarFileName,$DirectoryWhereToPut); > > } > > Das ist in vielerlei Hinsicht unsch?n. > > Als allerallererstes: bitte Variablen nicht allein in > Anf?hrungszeicehn setzen. Perl ist keine Shell. (Ja, es gibt > einen subtilen Unterschied ? der zeigt sich zB. bei Referenzen, > die mit Anf?hrungszeichen nicht funktionieren.) > > Der Backslash ist ?brigens ?berfl?ssig. > > Ausserdem baust du den immer gleichen String aus denselben > drei von sechs Variablen zusammen ? die anderen drei werden > garnicht verwendet. Sch?ner ist es, weniger Code zu schreiben, > indem du einfach die POSIX-Funktion `strftime` verwendest ? sowas > wie ein `printf` f?r Datums- und Zeitangaben. > > Und ausserdem: ist es deine Absicht, dass zwischen $Dir und dem > String ?BACKUP? kein Verzeichnistrenner steht? Im Grossen und > Ganzen ist es anzuraten, Pfade mit den Funktionen aus File::Spec > zusammenzubauen, statt sie mit blossen String-Operationen > zusammenzukleben. > > > sub CompressFile { > > my ($Dir,$TarFileName) =@_; > > # gzip it > > system ("gzip -rf $Dir/\*"); > > print "gzip $Dir done\n"; > > # tar it > > system ("tar cvf $TarFileName $Dir/\*"); > > print "tar $TarFileName done\n"; > > return; > > } > > Warum gzippst du die Dateien alle einzeln und packst sie dann in > einen unkomprimierten Tarball? W?re es andersrum nicht viel > sinnvoller? > Dies ist historisch entstanden, ich hatte wenig Platz auf der Platte und tar danach gz hat die Platte voll gemacht. Deine Vorschl?ge werde ich mir morgen bei der Arbeit anschauen. Vielen Dank Cem > > sub MoveFile { > > my ($TarFileName,$DirectoryWhereToPut) =@_; > > # move it to DirectoryWhereToPut > > system ("mv $TarFileName $DirectoryWhereToPut"); > > print "move $TarFileName to $DirectoryWhereToPut done\n"; > > return; > > } > > `system( $langer_string )` ist unsch?n. Enthalten deine > Dateinamen zuf?llig mal Leerzeichen oder andere Metazeichen, hast > du ein Problem. Eindeutig und sicher ist > `system( $programm, @parameter )`. > > > sub get_time { > > my ($sec,$min,$stund,$tag,$monat,$jahr,$junk,$day_of_year)=localtime(); > > $tag= sprintf "%2.2d",$tag; > > $monat=sprintf "%2.2d",$monat+1; > > return ($stund,$min,$sec,$tag,$monat,($jahr+1900)); > > } > > Anmerkung am Rande: du kannst auch einfach `%2d` schreiben ? ich > glaube nicht, dass du tats?chlich an Nachkommastellen > interessiert bist? > > Summa summarum w?rde ich dieses Skript so oder ?hnlich schreiben: > > #!/usr/bin/perl > use strict; > use warnings; > > use Getopt::Long; > use POSIX qw( strftime ); > > GetOptions( > 'destdir|d=s' => \( my $opt_destination = '/backup' ), > 'srcdir|s=s' => \( my %opt_srcdir ), > ); > > if( not %opt_srcdir ) { > %opt_srcdir = ( > # directory name directory where to put > a => 'cem/a' , > b => 'cem/b' , > c => 'cem/c' , > d => 'cem/d' , > ); > } > > my $ymd = strftime '%Y_%m_%d', localtime; > > foreach my $dir ( keys %opt_srcdir ) { > my $tarball = "${dir}BACKUP_${ymd}.tar.gz"; > run_cmd( tar => 'cvzf', $tarball, $dir ); > run_cmd( mv => $tarball, $opt_destination ); > } > > sub run_cmd { > system { $_[ 0 ] } @_; > print "Done: @_\n"; > } > > (Code ohne Gew?hr.) > > Das ist etwas hakelig, weil dein Mapping-Hash noch nicht richtig > verwendet wird? aber naja, es ist halt zu erkennen, wie es > aussehen sollte. > > Um es richtig rund zu machen fehlen da jetzt noch etwas POD und > ein paar Aufrufe von Pod::Usage. > > Gruss, > -- > #Aristoteles > *AUTOLOAD=*_=sub{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; > &Just->another->Perl->hacker; > _______________________________________________ > Cologne-pm mailing list > Cologne-pm at pm.org > http://mail.pm.org/mailman/listinfo/cologne-pm From uli at youam.net Thu Nov 10 12:25:33 2005 From: uli at youam.net (Uli Martens) Date: Thu, 10 Nov 2005 21:25:33 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <1131653516.2581.61.camel@dervish> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> Message-ID: <20051110202533.GD11368@ciara.youam.de> On Thu, Nov 10, 2005 at 09:11:56PM +0100, Cem Sakaryali wrote: > On Thu, 2005-11-10 at 19:30 +0100, A. Pagaltzis wrote: > > Warum gzippst du die Dateien alle einzeln und packst sie dann in > > einen unkomprimierten Tarball? W?re es andersrum nicht viel > > sinnvoller? > > > > Dies ist historisch entstanden, ich hatte wenig Platz auf > der Platte und tar danach gz hat die Platte voll gemacht. Ja, das Problem habe ich auch andauernd. Es w?re zu praktisch, wenn es eine M?glichkeit geben w?rde, wenn tar selbst die Daten komprimiert bzw. durch andere Programme komprimieren l?sst, ohne sie erst auf die Festplatte zu schreiben. Zu schade, dass das nicht geht... SCNR, Uli From cem.sakaryali at easi.de Thu Nov 10 12:45:32 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Thu, 10 Nov 2005 21:45:32 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110202533.GD11368@ciara.youam.de> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110202533.GD11368@ciara.youam.de> Message-ID: <1131655532.2581.66.camel@dervish> unter linux gibt es eine Option -z. Aber ich habe HP-UX bei der arbeit :) On Thu, 2005-11-10 at 21:25 +0100, Uli Martens wrote: > On Thu, Nov 10, 2005 at 09:11:56PM +0100, Cem Sakaryali wrote: > > On Thu, 2005-11-10 at 19:30 +0100, A. Pagaltzis wrote: > > > > Warum gzippst du die Dateien alle einzeln und packst sie dann in > > > einen unkomprimierten Tarball? W?re es andersrum nicht viel > > > sinnvoller? > > > > > > > Dies ist historisch entstanden, ich hatte wenig Platz auf > > der Platte und tar danach gz hat die Platte voll gemacht. > > Ja, das Problem habe ich auch andauernd. Es w?re zu praktisch, wenn es > eine M?glichkeit geben w?rde, wenn tar selbst die Daten komprimiert bzw. > durch andere Programme komprimieren l?sst, ohne sie erst auf die > Festplatte zu schreiben. Zu schade, dass das nicht geht... > > SCNR, > Uli > _______________________________________________ > Cologne-pm mailing list > Cologne-pm at pm.org > http://mail.pm.org/mailman/listinfo/cologne-pm From uli at youam.net Thu Nov 10 12:48:46 2005 From: uli at youam.net (Uli Martens) Date: Thu, 10 Nov 2005 21:48:46 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <1131655532.2581.66.camel@dervish> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110202533.GD11368@ciara.youam.de> <1131655532.2581.66.camel@dervish> Message-ID: <20051110204846.GE11368@ciara.youam.de> On Thu, Nov 10, 2005 at 09:45:32PM +0100, Cem Sakaryali wrote: > unter linux gibt es eine Option -z. > Aber ich habe HP-UX bei der arbeit :) Auch unter HP-UX gibt es Pipes. mfg, Uli From cem.sakaryali at easi.de Thu Nov 10 12:53:08 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Thu, 10 Nov 2005 21:53:08 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110204846.GE11368@ciara.youam.de> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110202533.GD11368@ciara.youam.de> <1131655532.2581.66.camel@dervish> <20051110204846.GE11368@ciara.youam.de> Message-ID: <1131655988.2581.69.camel@dervish> kannst Du mir ein Beispiel geben? etwa so? tar cvf dir1.tar dir1/ | gzip On Thu, 2005-11-10 at 21:48 +0100, Uli Martens wrote: > On Thu, Nov 10, 2005 at 09:45:32PM +0100, Cem Sakaryali wrote: > > unter linux gibt es eine Option -z. > > Aber ich habe HP-UX bei der arbeit :) > > Auch unter HP-UX gibt es Pipes. > > mfg, > Uli > _______________________________________________ > Cologne-pm mailing list > Cologne-pm at pm.org > http://mail.pm.org/mailman/listinfo/cologne-pm From mail.pm.org at netfibel.de Thu Nov 10 13:02:17 2005 From: mail.pm.org at netfibel.de (=?iso-8859-1?Q?Michael_Schr=F6der?=) Date: Thu, 10 Nov 2005 22:02:17 +0100 Subject: [Cologne-pm] Neuer Eintrag auf der Liste Message-ID: <000401c5e63a$08c7a340$0200a8c0@hal1300> Hallo, >> Es gibt 'ne Menge Subscribers auf der Liste, von denen noch nie >> jemand >> 'was gesagt hat. Irgendeine Motivation, sich zu subscriben, musste >> doch vorhanden sein... >Das w?sste ich auch nur zu gern Ich schreibe schon seit ?ber 5 Jahren Perl Scripte habe aber noch kaum jemanden getroffen, der auch ein wenig Perl beherrscht. Leider ist K?ln nicht mal eben so zu erreichen bzw. mangelt es mir ein wenig an Zeit. Als ich mich in die Liste eingetragen habe war das noch anders. Aber wie es im Leben so ist - as time goes by. Hab mir Perl auch weitergehend selbst beigebracht und bin auch kein Verfechter von use strict; und mag auch lieber deutsche Variablenbezeichnungen. Fakt ist - meine Scripte laufen erfolgreich. Darauf kommt es doch an - oder? Perl auf der Shell einzusetzen finde ich genial. Warum soll ich mich mit Dem unn?tigen Ballast der Extras von z.B. C rumschlagen, wenn > `perl *.cgi` genauso gut ist wie > `*.sh` Gru? Michael From cem.sakaryali at easi.de Thu Nov 10 13:05:40 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Thu, 10 Nov 2005 22:05:40 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <1131653516.2581.61.camel@dervish> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> Message-ID: <1131656740.2581.74.camel@dervish> http://search.cpan.org/~aristotle/Proc-Fork-0.11/lib/Proc/Fork.pm Proc::Fork Ist ja sogar von Dir :) On Thu, 2005-11-10 at 21:11 +0100, Cem Sakaryali wrote: > Hi Aristoteles, > > Eine Anmerkung am Rande, kann man bei unserer Mailingliste > Reply To: cologne-pm at pm.org einstellen? > > Wenn ich einfach > reply mache geht es nur an den sender. Wenn man reply to all > macht bekommt der sender die Mail 2 mal. > > Z.B wenn Mike mir antwortet bekomme ich die Mail 2 mal. > > > On Thu, 2005-11-10 at 19:30 +0100, A. Pagaltzis wrote: > > Hi Cem, > > > > * Cem Sakaryali [2005-11-10 11:55]: > > > Meine Frage ist, da die einzelne Dir's mitteinander nichts > > > zutun haben wuerde ich sie parallel auf mehreren maschienen > > > starten. Wie kann ich dies machen? > > > > Auf mehreren Maschinen, oder auf mehreren CPUs? Oder? was? :-) > > Eigentlich auf mehreren Maschinenen wobei jeder von denen 2 > CPUs hat. Also beides :) Also 2 Maschinen fuer 4 directorys. > > Ich habe das Modul fork gefunden, ich denke dieses Modul > kann auf eine Maschiene 2 prozesse erzeugen. Leider geh?rt > fork nich zu standart perl und ich habe keine Ahnung ob > es sich auf meiner Maschiene installieren l?sst. > > > > > Ehrlich gesagt w?rde ich f?r diese Aufgabe garkein Perl > > schreiben, sondern einfach Shell verwenden und die > > Parallelausf?hrung per ?blicher Jobkontrolle erledigen. Diese > > Aufgaben sind schliesslich der ganze Lebenssinn der Shell. > > > > Zum Skript ein Haufen Kommentare: > > > > > my $DirectoryWhereToPut = '/backup'; > > > > Der englische Begriff daf?r ist ?brigens ?destination?. > > > > > my ($stund,$min,$sec,$tag,$monat,$jahr)=get_time (); > > > > > > foreach my $Dir (keys %hash) { > > > my $TarFileName = > > > "$Dir"."BACKUP"."_"."$jahr"."_"."$monat"."_"."$tag\.tar"; > > > CompressFile ($Dir,$TarFileName); > > > MoveFile ($TarFileName,$DirectoryWhereToPut); > > > } > > > > Das ist in vielerlei Hinsicht unsch?n. > > > > Als allerallererstes: bitte Variablen nicht allein in > > Anf?hrungszeicehn setzen. Perl ist keine Shell. (Ja, es gibt > > einen subtilen Unterschied ? der zeigt sich zB. bei Referenzen, > > die mit Anf?hrungszeichen nicht funktionieren.) > > > > Der Backslash ist ?brigens ?berfl?ssig. > > > > Ausserdem baust du den immer gleichen String aus denselben > > drei von sechs Variablen zusammen ? die anderen drei werden > > garnicht verwendet. Sch?ner ist es, weniger Code zu schreiben, > > indem du einfach die POSIX-Funktion `strftime` verwendest ? sowas > > wie ein `printf` f?r Datums- und Zeitangaben. > > > > Und ausserdem: ist es deine Absicht, dass zwischen $Dir und dem > > String ?BACKUP? kein Verzeichnistrenner steht? Im Grossen und > > Ganzen ist es anzuraten, Pfade mit den Funktionen aus File::Spec > > zusammenzubauen, statt sie mit blossen String-Operationen > > zusammenzukleben. > > > > > sub CompressFile { > > > my ($Dir,$TarFileName) =@_; > > > # gzip it > > > system ("gzip -rf $Dir/\*"); > > > print "gzip $Dir done\n"; > > > # tar it > > > system ("tar cvf $TarFileName $Dir/\*"); > > > print "tar $TarFileName done\n"; > > > return; > > > } > > > > Warum gzippst du die Dateien alle einzeln und packst sie dann in > > einen unkomprimierten Tarball? W?re es andersrum nicht viel > > sinnvoller? > > > > Dies ist historisch entstanden, ich hatte wenig Platz auf > der Platte und tar danach gz hat die Platte voll gemacht. > > Deine Vorschl?ge werde ich mir morgen bei der Arbeit > anschauen. > > Vielen Dank > Cem > > > > > sub MoveFile { > > > my ($TarFileName,$DirectoryWhereToPut) =@_; > > > # move it to DirectoryWhereToPut > > > system ("mv $TarFileName $DirectoryWhereToPut"); > > > print "move $TarFileName to $DirectoryWhereToPut done\n"; > > > return; > > > } > > > > `system( $langer_string )` ist unsch?n. Enthalten deine > > Dateinamen zuf?llig mal Leerzeichen oder andere Metazeichen, hast > > du ein Problem. Eindeutig und sicher ist > > `system( $programm, @parameter )`. > > > > > sub get_time { > > > my ($sec,$min,$stund,$tag,$monat,$jahr,$junk,$day_of_year)=localtime(); > > > $tag= sprintf "%2.2d",$tag; > > > $monat=sprintf "%2.2d",$monat+1; > > > return ($stund,$min,$sec,$tag,$monat,($jahr+1900)); > > > } > > > > Anmerkung am Rande: du kannst auch einfach `%2d` schreiben ? ich > > glaube nicht, dass du tats?chlich an Nachkommastellen > > interessiert bist? > > > > Summa summarum w?rde ich dieses Skript so oder ?hnlich schreiben: > > > > #!/usr/bin/perl > > use strict; > > use warnings; > > > > use Getopt::Long; > > use POSIX qw( strftime ); > > > > GetOptions( > > 'destdir|d=s' => \( my $opt_destination = '/backup' ), > > 'srcdir|s=s' => \( my %opt_srcdir ), > > ); > > > > if( not %opt_srcdir ) { > > %opt_srcdir = ( > > # directory name directory where to put > > a => 'cem/a' , > > b => 'cem/b' , > > c => 'cem/c' , > > d => 'cem/d' , > > ); > > } > > > > my $ymd = strftime '%Y_%m_%d', localtime; > > > > foreach my $dir ( keys %opt_srcdir ) { > > my $tarball = "${dir}BACKUP_${ymd}.tar.gz"; > > run_cmd( tar => 'cvzf', $tarball, $dir ); > > run_cmd( mv => $tarball, $opt_destination ); > > } > > > > sub run_cmd { > > system { $_[ 0 ] } @_; > > print "Done: @_\n"; > > } > > > > (Code ohne Gew?hr.) > > > > Das ist etwas hakelig, weil dein Mapping-Hash noch nicht richtig > > verwendet wird? aber naja, es ist halt zu erkennen, wie es > > aussehen sollte. > > > > Um es richtig rund zu machen fehlen da jetzt noch etwas POD und > > ein paar Aufrufe von Pod::Usage. > > > > Gruss, > > -- > > #Aristoteles > > *AUTOLOAD=*_=sub{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; > > &Just->another->Perl->hacker; > > _______________________________________________ > > Cologne-pm mailing list > > Cologne-pm at pm.org > > http://mail.pm.org/mailman/listinfo/cologne-pm > > _______________________________________________ > Cologne-pm mailing list > Cologne-pm at pm.org > http://mail.pm.org/mailman/listinfo/cologne-pm From pagaltzis at gmx.de Thu Nov 10 13:08:47 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Thu, 10 Nov 2005 22:08:47 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <1131653516.2581.61.camel@dervish> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> Message-ID: <20051110210847.GP29499@klangraum> * Cem Sakaryali [2005-11-10 21:15]: > Eine Anmerkung am Rande, kann man bei unserer Mailingliste > Reply To: cologne-pm at pm.org einstellen? Bessere Mailclients haben eine ?list-reply?-Funktion. ;-) Ob man das bei dieser Liste individuell einstellen kann, weiss ich nicht, aber wenn es querbeet als Default f?r alle Subscriber eingestellt w?re, w?rde ich mich beschweren. Das macht n?mlich private off-list Antworten massiv umst?ndlich. > Z.B wenn Mike mir antwortet bekomme ich die Mail 2 mal. Der ist wohl zu faul, ?subscribe cologne-pm at pm.org? in seine .muttrc zu schreiben und dann f?r Antworten an die Liste ?L? zu verwenden. > > Warum gzippst du die Dateien alle einzeln und packst sie dann > > in einen unkomprimierten Tarball? W?re es andersrum nicht > > viel sinnvoller? > > Dies ist historisch entstanden, ich hatte wenig Platz auf der > Platte und tar danach gz hat die Platte voll gemacht. Wie Uli schon mit gekonnter Ironie andeutete ? du kannst tar per ?-z? sagen, es soll selber gzippen, sodass garkeine tempor?ren Dateien entstehen. So wie ich es im Beispielcode gemacht habe? Gruss, -- Aristoteles ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? From pagaltzis at gmx.de Thu Nov 10 13:10:41 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Thu, 10 Nov 2005 22:10:41 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <1131655988.2581.69.camel@dervish> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110202533.GD11368@ciara.youam.de> <1131655532.2581.66.camel@dervish> <20051110204846.GE11368@ciara.youam.de> <1131655988.2581.69.camel@dervish> Message-ID: <20051110211041.GQ29499@klangraum> * Cem Sakaryali [2005-11-10 21:55]: > kannst Du mir ein Beispiel geben? > > etwa so? > tar cvf dir1.tar dir1/ | gzip tar cvf - dir/ | gzip > dir.tar.gz Gruss, -- #Aristoteles *AUTOLOAD=*_=sub{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; &Just->another->Perl->hacker; From uli at youam.net Thu Nov 10 13:10:06 2005 From: uli at youam.net (Uli Martens) Date: Thu, 10 Nov 2005 22:10:06 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <1131655988.2581.69.camel@dervish> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110202533.GD11368@ciara.youam.de> <1131655532.2581.66.camel@dervish> <20051110204846.GE11368@ciara.youam.de> <1131655988.2581.69.camel@dervish> Message-ID: <20051110211006.GF11368@ciara.youam.de> On Thu, Nov 10, 2005 at 09:53:08PM +0100, Cem Sakaryali wrote: > kannst Du mir ein Beispiel geben? > > etwa so? > tar cvf dir1.tar dir1/ | gzip Fast. tar f , ansonsten wird stdin (tar [cat]) oder stdout (tar x) genommen. Also entweder | tar cvf outfile.tar files oder | tar cv files > outfile.tar bzw | tar cv files | gzip > outfile.tar.gz entsprechend andersrum: | zcat outfile.tar.gz | tar xv HTH, Uli From uli at youam.net Thu Nov 10 13:13:27 2005 From: uli at youam.net (Uli Martens) Date: Thu, 10 Nov 2005 22:13:27 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110211006.GF11368@ciara.youam.de> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110202533.GD11368@ciara.youam.de> <1131655532.2581.66.camel@dervish> <20051110204846.GE11368@ciara.youam.de> <1131655988.2581.69.camel@dervish> <20051110211006.GF11368@ciara.youam.de> Message-ID: <20051110211327.GG11368@ciara.youam.de> On Thu, Nov 10, 2005 at 10:10:06PM +0100, Uli Martens wrote: > | tar cvf outfile.tar files > | tar cv files > outfile.tar > | tar cv files | gzip > outfile.tar.gz > | zcat outfile.tar.gz | tar xv ^ Ein wenig ungl?cklich. Die erste Pipe pro Zeile heisst nat?rlich "hier kommt ein gequotetes Kommando", geh?rt also nicht zum Befehl selbst... From pagaltzis at gmx.de Thu Nov 10 13:14:32 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Thu, 10 Nov 2005 22:14:32 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <1131656740.2581.74.camel@dervish> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <1131656740.2581.74.camel@dervish> Message-ID: <20051110211432.GR29499@klangraum> * Cem Sakaryali [2005-11-10 22:10]: > http://search.cpan.org/~aristotle/Proc-Fork-0.11/lib/Proc/Fork.pm > > Proc::Fork Ist ja sogar von Dir :) :-) Die aktuelle Version jedenfalls. Geschrieben hat das Modul urspr?nglich jemand anders, der mir, nachdem er ewig lang nicht dazu kam, meinen Patch zum Umkrempeln und Aufr?umen der Interna durchzugucken, kurzerhand die Pflege des Moduls ?berlassen hat. Allerdings glaube ich, willst du hier wirklich nicht mit Perl arbeiten ? das kann die Shell viel besser. Gruss, -- Aristoteles ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? From cem.sakaryali at easi.de Thu Nov 10 13:22:37 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Thu, 10 Nov 2005 22:22:37 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110210847.GP29499@klangraum> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110210847.GP29499@klangraum> Message-ID: <1131657757.2581.82.camel@dervish> On Thu, 2005-11-10 at 22:08 +0100, A. Pagaltzis wrote: > * Cem Sakaryali [2005-11-10 21:15]: > > Eine Anmerkung am Rande, kann man bei unserer Mailingliste > > Reply To: cologne-pm at pm.org einstellen? > > Bessere Mailclients haben eine ?list-reply?-Funktion. ;-) > > Ob man das bei dieser Liste individuell einstellen kann, weiss > ich nicht, aber wenn es querbeet als Default f?r alle Subscriber > eingestellt w?re, w?rde ich mich beschweren. Das macht n?mlich > private off-list Antworten massiv umst?ndlich. > > > Z.B wenn Mike mir antwortet bekomme ich die Mail 2 mal. > > Der ist wohl zu faul, ?subscribe cologne-pm at pm.org? in seine > .muttrc zu schreiben und dann f?r Antworten an die Liste ?L? zu > verwenden. > > > > Warum gzippst du die Dateien alle einzeln und packst sie dann > > > in einen unkomprimierten Tarball? W?re es andersrum nicht > > > viel sinnvoller? > > > > Dies ist historisch entstanden, ich hatte wenig Platz auf der > > Platte und tar danach gz hat die Platte voll gemacht. > > Wie Uli schon mit gekonnter Ironie andeutete ? du kannst tar per > ?-z? sagen, es soll selber gzippen, sodass garkeine tempor?ren > Dateien entstehen. > naja ich habe etwas gelernt und ihr habt spass gehabt. Ist doch ok :) Gruss Cem > So wie ich es im Beispielcode gemacht habe? > > Gruss, > -- > Aristoteles > ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? > _______________________________________________ > Cologne-pm mailing list > Cologne-pm at pm.org > http://mail.pm.org/mailman/listinfo/cologne-pm From pagaltzis at gmx.de Thu Nov 10 13:37:41 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Thu, 10 Nov 2005 22:37:41 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110211327.GG11368@ciara.youam.de> <20051110211006.GF11368@ciara.youam.de> References: <20051110211006.GF11368@ciara.youam.de> <20051110211327.GG11368@ciara.youam.de> <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110202533.GD11368@ciara.youam.de> <1131655532.2581.66.camel@dervish> <20051110204846.GE11368@ciara.youam.de> <1131655988.2581.69.camel@dervish> <20051110211006.GF11368@ciara.youam.de> Message-ID: <20051110213741.GS29499@klangraum> * Uli Martens [2005-11-10 22:15]: > | tar cv files > outfile.tar GNU tar macht das mit, andere nicht unbedingt. (Einige Varianten wollen dann zB. gleich aufs Bandlaufwerk schreiben.) Besser, du gibst ?-f -? immer explizit an. * Uli Martens [2005-11-10 22:15]: > Ein wenig ungl?cklich. Die erste Pipe pro Zeile heisst > nat?rlich "hier kommt ein gequotetes Kommando", geh?rt also > nicht zum Befehl selbst... Mein Vorschlag w?re einfaches Einr?cken um 4 Leerschritte ? das ist eindeutlich genug und nervt den Emp?nger beim Copypasten aus der Mail auch relativ wenig. (Vorzugsweise verwende man einen Editor, mit dem man blockweise l?schen und/oder absatzweise ein-/ausr?cken kann. So wie Vim. :-) ) Gruss, -- Aristoteles ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? From pagaltzis at gmx.de Thu Nov 10 13:39:33 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Thu, 10 Nov 2005 22:39:33 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <1131657757.2581.82.camel@dervish> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110210847.GP29499@klangraum> <1131657757.2581.82.camel@dervish> Message-ID: <20051110213933.GT29499@klangraum> * Cem Sakaryali [2005-11-10 22:25]: > naja ich habe etwas gelernt und ihr habt spass gehabt. Ist doch > ok :) Hat ja auch keiner was gesagt. :-) Nicht zuallerletzt haben wir ja auch ein bisschen Schwung auf der Liste ? das ist auch nicht zu verachten! Gruss, -- Aristoteles ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? From mike at lamertz.net Thu Nov 10 13:47:37 2005 From: mike at lamertz.net (Michael Lamertz) Date: Thu, 10 Nov 2005 22:47:37 +0100 Subject: [Cologne-pm] (fwd) FW: Zu gestern abend; perl "-x" Message-ID: <20051110214736.GH4653@lamertz.net> Wg. Bounce von mir weiter geleitet... -- 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 -------------- next part -------------- An embedded message was scrubbed... From: Philip Zembrod Subject: FW: Zu gestern abend; perl "-x" Date: Thu, 10 Nov 2005 16:21:08 +0100 Size: 3331 Url: http://mail.pm.org/pipermail/cologne-pm/attachments/20051110/b84f9450/attachment-0001.mht From uli at youam.net Thu Nov 10 13:55:30 2005 From: uli at youam.net (Uli Martens) Date: Thu, 10 Nov 2005 22:55:30 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110213741.GS29499@klangraum> References: <20051110211327.GG11368@ciara.youam.de> <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110202533.GD11368@ciara.youam.de> <1131655532.2581.66.camel@dervish> <20051110204846.GE11368@ciara.youam.de> <1131655988.2581.69.camel@dervish> <20051110211006.GF11368@ciara.youam.de> <20051110213741.GS29499@klangraum> Message-ID: <20051110215530.GA19493@ciara.youam.de> On Thu, Nov 10, 2005 at 10:37:41PM +0100, A. Pagaltzis wrote: > Mein Vorschlag w?re einfaches Einr?cken um 4 Leerschritte ??? das > ist eindeutlich genug und nervt den Emp?nger beim Copypasten aus > der Mail auch relativ wenig. (Vorzugsweise verwende man einen > Editor, mit dem man blockweise l?schen und/oder absatzweise > ein-/ausr?cken kann. So wie Vim. :-) ) http://groups.google.com/group/de.alt.sysadmin.recovery/msg/d2e60329a4f7144d From pagaltzis at gmx.de Thu Nov 10 14:43:36 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Thu, 10 Nov 2005 23:43:36 +0100 Subject: [Cologne-pm] Zu gestern abend; perl "-x" In-Reply-To: <20051110214736.GH4653@lamertz.net> References: <20051110214736.GH4653@lamertz.net> Message-ID: <20051110224336.GV29499@klangraum> Hi Philip, * Philip Zembrod [2005-11-10 16:21]: > Mike, ich hab nochmal ?ber Deinen Wunsch nach einem > perl-Equivalent zu sh -x nachgedacht (ich hab mich beim > debuggen meiner automatischen GUI-Tests etwas mehr mit den > Interna des perl-Debuggers besch?ftigen m?ssen). Mein Vorschlag: Der Abstract des Moduls: ?Print out each line before it is executed (like sh -x)? Kommt mir irgendwie bekannt vor? *g* > Aristoteles, die Geschichte mit dem Hochspannungskabel ist ja > wirklich versch?rft. Nicht? Hab sie gestern abend selbst nochmal ?berflogen. S?mtliche Zahlen sind einfach beeindruckend, aber IMHO stechen die die Gewalt des karbonierten ?ls am Unterbrecher (3000 ft = 900 m, 200 PSI = 14 bar) und die des Thumpers hervor. Gruss, -- #Aristoteles *AUTOLOAD=*_=sub{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; &Just->another->Perl->hacker; From mike at lamertz.net Thu Nov 10 14:48:11 2005 From: mike at lamertz.net (Michael Lamertz) Date: Thu, 10 Nov 2005 23:48:11 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110183014.GN29499@klangraum> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> Message-ID: <20051110224811.GJ4653@lamertz.net> On Thu, Nov 10, 2005 at 07:30:14PM +0100, A. Pagaltzis wrote: > Hi Cem, > > Ehrlich gesagt w?rde ich f?r diese Aufgabe garkein Perl > schreiben, sondern einfach Shell verwenden und die > Parallelausf?hrung per ?blicher Jobkontrolle erledigen. Diese > Aufgaben sind schliesslich der ganze Lebenssinn der Shell. Hear, hear! Und da Aristoteles es sogar schon fuer mich geparsed und aufgeraeumt hat, kann ich eigentlich nur noch mit eben dieser Version vervollstaendigen. backup () { dst=$1; shift 1 [ ! -d $dst ] && mkdir -p $dst timestamp=`date +%Y%m%d` for src in "$@"; do base=`basename $src` tar cvzf $dst/$base-$timestamp.tar.gz $src & # <---- note, in den Hintergrund damit, wenn Du zuviele CPUs uebrig hast. done } Oder direkt in der Kommandozeile: for i in src_dir/*; do tar cvzf dst_dir/`basename $i`-`date +%Y%m%d`.tar.gz; done Oder wieder die Big-Iron-Version: for i in src_dir/*; do tar cvzf dst_dir/`basename $i`-`date +%Y%m%d`.tar.gz& done 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 From mike at lamertz.net Thu Nov 10 14:55:19 2005 From: mike at lamertz.net (Michael Lamertz) Date: Thu, 10 Nov 2005 23:55:19 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <1131653516.2581.61.camel@dervish> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> Message-ID: <20051110225519.GK4653@lamertz.net> On Thu, Nov 10, 2005 at 09:11:56PM +0100, Cem Sakaryali wrote: > Hi Aristoteles, > > Eine Anmerkung am Rande, kann man bei unserer Mailingliste > Reply To: cologne-pm at pm.org einstellen? Ja, kann man, aber das Interface hat "Poster" als Default und kommentiert diesen mit "Where are replies to list messages directed? Poster is strongly recommended for most mailing lists." > Wenn ich einfach reply mache geht es nur an den sender. Wenn man reply > to all macht bekommt der sender die Mail 2 mal. Der geneigte Leser empfiehlt procmail > > Auf mehreren Maschinen, oder auf mehreren CPUs? Oder... was? :-) > > Eigentlich auf mehreren Maschinenen wobei jeder von denen 2 > CPUs hat. Also beides :) Also 2 Maschinen fuer 4 directorys. > > Ich habe das Modul fork gefunden, ich denke dieses Modul > kann auf eine Maschiene 2 prozesse erzeugen. Leider geh?rt > fork nich zu standart perl und ich habe keine Ahnung ob > es sich auf meiner Maschiene installieren l?sst. Auf Maschinen auf denen Gott wollte, dass Perl laeuft, funktioniert das in Perl eingebaute 'fork' >;-> Aber sach'mal, von wie vielen Daten reden wir hier eigentlich, dass Du das auf mehrere Maschinen verteilen willst? Ich meine, selbst im Gigabyte-Bereich ist sowas doch in ein paar minuetchen im Hintergrund erledigt. -- 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 From mike at lamertz.net Thu Nov 10 14:58:30 2005 From: mike at lamertz.net (Michael Lamertz) Date: Thu, 10 Nov 2005 23:58:30 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110204846.GE11368@ciara.youam.de> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110202533.GD11368@ciara.youam.de> <1131655532.2581.66.camel@dervish> <20051110204846.GE11368@ciara.youam.de> Message-ID: <20051110225830.GL4653@lamertz.net> On Thu, Nov 10, 2005 at 09:48:46PM +0100, Uli Martens wrote: > On Thu, Nov 10, 2005 at 09:45:32PM +0100, Cem Sakaryali wrote: > > unter linux gibt es eine Option -z. > > Aber ich habe HP-UX bei der arbeit :) > > Auch unter HP-UX gibt es Pipes. Oder ein GNU-Tar War das bei Bull, wo's HP-UX-Pakete von GNU-Software gab? Oder war das doch fuer AIX? -- 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 From mike at lamertz.net Thu Nov 10 15:03:35 2005 From: mike at lamertz.net (Michael Lamertz) Date: Fri, 11 Nov 2005 00:03:35 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110210847.GP29499@klangraum> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110210847.GP29499@klangraum> Message-ID: <20051110230335.GM4653@lamertz.net> On Thu, Nov 10, 2005 at 10:08:47PM +0100, A. Pagaltzis wrote: > Ob man das bei dieser Liste individuell einstellen kann, weiss > ich nicht, aber wenn es querbeet als Default f?r alle Subscriber > eingestellt w?re, w?rde ich mich beschweren. Das macht n?mlich > private off-list Antworten massiv umst?ndlich. Yepp. > > Z.B wenn Mike mir antwortet bekomme ich die Mail 2 mal. > > Der ist wohl zu faul, ?subscribe cologne-pm at pm.org? in seine > .muttrc zu schreiben und dann f?r Antworten an die Liste ?L? zu > verwenden. Nope, der macht das absichtlich. Viele foldern List-Nachrichten erstmal wech und wenn derjenige auf 'ne Antwort wartet - und nicht doubles von procmail ohnehin 'rausloeschen laesst - bekommt er zusaetzlich eine an seine eigene Adresse. Ist 'ne Angewohnheit - vielleicht 'ne diskussionswuerdige, aber ich bin zu alt um mich noch zu verbiegen ;-) -- 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 From pagaltzis at gmx.de Thu Nov 10 15:08:14 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Fri, 11 Nov 2005 00:08:14 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110225519.GK4653@lamertz.net> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110225519.GK4653@lamertz.net> Message-ID: <20051110230814.GW29499@klangraum> * Michael Lamertz [2005-11-11 00:00]: > Auf Maschinen auf denen Gott wollte, dass Perl laeuft, > funktioniert das in Perl eingebaute 'fork' >;-> :-) Er redet von Proc::Fork, das ist ein schicker ?Perl-ish? Wrapper um fork() (dessen Pflege wie bereits gesagt jetzt mir obliegt). Gruss, -- Aristoteles ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? From mike at lamertz.net Thu Nov 10 15:11:44 2005 From: mike at lamertz.net (Michael Lamertz) Date: Fri, 11 Nov 2005 00:11:44 +0100 Subject: [Cologne-pm] Zu gestern abend; perl "-x" In-Reply-To: <20051110224336.GV29499@klangraum> References: <20051110214736.GH4653@lamertz.net> <20051110224336.GV29499@klangraum> Message-ID: <20051110231144.GN4653@lamertz.net> On Thu, Nov 10, 2005 at 11:43:36PM +0100, A. Pagaltzis wrote: > Hi Philip, > > * Philip Zembrod [2005-11-10 16:21]: > > Mike, ich hab nochmal ?ber Deinen Wunsch nach einem > > perl-Equivalent zu sh -x nachgedacht (ich hab mich beim > > debuggen meiner automatischen GUI-Tests etwas mehr mit den > > Interna des perl-Debuggers besch?ftigen m?ssen). @Philip (ganz vergessen, neben dem fwd noch 'drauf zu antworten @-) Ich wusste doch, dass es irgendwie mit 'ner Debugger-Subclass geht. :-) > Mein Vorschlag: *slap* and the forehead grows... > > Aristoteles, die Geschichte mit dem Hochspannungskabel ist ja > > wirklich versch?rft. > > Nicht? Hab sie gestern abend selbst nochmal ?berflogen. S?mtliche > Zahlen sind einfach beeindruckend, aber IMHO stechen die die > Gewalt des karbonierten ?ls am Unterbrecher (3000 ft = 900 m, 200 > PSI = 14 bar) und die des Thumpers hervor. Joh, der Hammer! Apropos Hammer, musste dann auch noch direkt Wikipedia wg. "Water Hammer" bemuehen, obwohl's mir beim lesen Deines Links direkt schon klar wurde ---------- http://en.wikipedia.org/wiki/Water_hammer ---------- Water hammer can cause pipelines to break or even explode if the pressure is high enough. ---------- http://en.wikipedia.org/wiki/Water_hammer ---------- und ---------- http://en.wikipedia.org/wiki/Water_hammer ---------- On the other hand, when a valve in a pipe is closed, the water downstream of the valve will attempt to continue flowing, creating a vacuum that may cause the pipe to collapse or implode. This problem can be particularly acute if the pipe is on a downhill slope. ---------- http://en.wikipedia.org/wiki/Water_hammer ---------- Ouch! -- 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 From mike at lamertz.net Thu Nov 10 15:16:22 2005 From: mike at lamertz.net (Michael Lamertz) Date: Fri, 11 Nov 2005 00:16:22 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110230814.GW29499@klangraum> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110225519.GK4653@lamertz.net> <20051110230814.GW29499@klangraum> Message-ID: <20051110231622.GO4653@lamertz.net> On Fri, Nov 11, 2005 at 12:08:14AM +0100, A. Pagaltzis wrote: > * Michael Lamertz [2005-11-11 00:00]: > > Auf Maschinen auf denen Gott wollte, dass Perl laeuft, > > funktioniert das in Perl eingebaute 'fork' >;-> > > :-) > > Er redet von Proc::Fork, das ist ein schicker ?Perl-ish? Wrapper > um fork() (dessen Pflege wie bereits gesagt jetzt mir obliegt). Hmm, das hab' ich ein paar Nachrichten spaeter auch bemerkt (note to self: demnaechst ganzen thread lesen vor der Antwort). Aber: Wieso einen Wrapper der eine neue Syntax einfuehrt, fuer etwas, was jeder Unixer seit 25 Jahren idiomatisch benutzt? @-) Ich find' an fork irgendwie nix unintuitives. Nevermind - M. -- 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 From pagaltzis at gmx.de Thu Nov 10 15:28:27 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Fri, 11 Nov 2005 00:28:27 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110231622.GO4653@lamertz.net> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <1131653516.2581.61.camel@dervish> <20051110225519.GK4653@lamertz.net> <20051110230814.GW29499@klangraum> <20051110231622.GO4653@lamertz.net> Message-ID: <20051110232827.GX29499@klangraum> * Michael Lamertz [2005-11-11 00:20]: > Aber: Wieso einen Wrapper der eine neue Syntax einfuehrt, fuer > etwas, was jeder Unixer seit 25 Jahren idiomatisch benutzt? Ich benutze fork() nur selten ? und muss dann immer einen Moment stutzen, um mir in Erinnerung zu rufen, was man im Mutter- und was im Tochterprozess macht. Ausserdem, finde ich, ist es beim Lesen einfach klarer. Wenn man keine Fehlerbehandlung macht, geht es ganz ?hnlich auch mit einem `if`, will man?s richtig machen, ist der Code aber einfach nicht mehr so klar in Blockstrukturen aufzuteilen. Naja. Geschmack. :-) Gruss, -- Aristoteles ?Like punning, programming is a play on words.? ? Alan J. Perlis, ?Epigrams in Programming? From cem.sakaryali at easi.de Fri Nov 11 00:38:44 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Fri, 11 Nov 2005 09:38:44 +0100 (Westeuropäische Normalzeit) Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051110183014.GN29499@klangraum> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> Message-ID: <31848.136.8.152.14.1131698324.squirrel@dergah> 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. Danke Cem On Thu, November 10, 2005 19:30, A. Pagaltzis wrote: > Hi Cem, > > * Cem Sakaryali [2005-11-10 11:55]: >> Meine Frage ist, da die einzelne Dir's mitteinander nichts >> zutun haben wuerde ich sie parallel auf mehreren maschienen >> starten. Wie kann ich dies machen? > > Auf mehreren Maschinen, oder auf mehreren CPUs? Oder??? was? :-) > > Ehrlich gesagt w??rde ich f??r diese Aufgabe garkein Perl > schreiben, sondern einfach Shell verwenden und die > Parallelausf??hrung per ??blicher Jobkontrolle erledigen. Diese > Aufgaben sind schliesslich der ganze Lebenssinn der Shell. > > Zum Skript ein Haufen Kommentare: > >> my $DirectoryWhereToPut = '/backup'; > > Der englische Begriff daf??r ist ??brigens ??destination??. > >> my ($stund,$min,$sec,$tag,$monat,$jahr)=get_time (); >> >> foreach my $Dir (keys %hash) { >> my $TarFileName = >> "$Dir"."BACKUP"."_"."$jahr"."_"."$monat"."_"."$tag\.tar"; >> CompressFile ($Dir,$TarFileName); >> MoveFile ($TarFileName,$DirectoryWhereToPut); >> } > > Das ist in vielerlei Hinsicht unsch??n. > > Als allerallererstes: bitte Variablen nicht allein in > Anf??hrungszeicehn setzen. Perl ist keine Shell. (Ja, es gibt > einen subtilen Unterschied ??? der zeigt sich zB. bei Referenzen, > die mit Anf??hrungszeichen nicht funktionieren.) > > Der Backslash ist ??brigens ??berfl??ssig. > > Ausserdem baust du den immer gleichen String aus denselben > drei von sechs Variablen zusammen ??? die anderen drei werden > garnicht verwendet. Sch??ner ist es, weniger Code zu schreiben, > indem du einfach die POSIX-Funktion `strftime` verwendest ??? sowas > wie ein `printf` f??r Datums- und Zeitangaben. > > Und ausserdem: ist es deine Absicht, dass zwischen $Dir und dem > String ??BACKUP?? kein Verzeichnistrenner steht? Im Grossen und > Ganzen ist es anzuraten, Pfade mit den Funktionen aus File::Spec > zusammenzubauen, statt sie mit blossen String-Operationen > zusammenzukleben. > >> sub CompressFile { >> my ($Dir,$TarFileName) =@_; >> # gzip it >> system ("gzip -rf $Dir/\*"); >> print "gzip $Dir done\n"; >> # tar it >> system ("tar cvf $TarFileName $Dir/\*"); >> print "tar $TarFileName done\n"; >> return; >> } > > Warum gzippst du die Dateien alle einzeln und packst sie dann in > einen unkomprimierten Tarball? W??re es andersrum nicht viel > sinnvoller? > >> sub MoveFile { >> my ($TarFileName,$DirectoryWhereToPut) =@_; >> # move it to DirectoryWhereToPut >> system ("mv $TarFileName $DirectoryWhereToPut"); >> print "move $TarFileName to $DirectoryWhereToPut done\n"; >> return; >> } > > `system( $langer_string )` ist unsch??n. Enthalten deine > Dateinamen zuf??llig mal Leerzeichen oder andere Metazeichen, hast > du ein Problem. Eindeutig und sicher ist > `system( $programm, @parameter )`. > >> sub get_time { >> my >> ($sec,$min,$stund,$tag,$monat,$jahr,$junk,$day_of_year)=localtime(); >> $tag= sprintf "%2.2d",$tag; >> $monat=sprintf "%2.2d",$monat+1; >> return ($stund,$min,$sec,$tag,$monat,($jahr+1900)); >> } > > Anmerkung am Rande: du kannst auch einfach `%2d` schreiben ??? ich > glaube nicht, dass du tats??chlich an Nachkommastellen > interessiert bist??? > > Summa summarum w??rde ich dieses Skript so oder ??hnlich schreiben: > > #!/usr/bin/perl > use strict; > use warnings; > > use Getopt::Long; > use POSIX qw( strftime ); > > GetOptions( > 'destdir|d=s' => \( my $opt_destination = '/backup' ), > 'srcdir|s=s' => \( my %opt_srcdir ), > ); > > if( not %opt_srcdir ) { > %opt_srcdir = ( > # directory name directory where to put > a => 'cem/a' , > b => 'cem/b' , > c => 'cem/c' , > d => 'cem/d' , > ); > } > > my $ymd = strftime '%Y_%m_%d', localtime; > > foreach my $dir ( keys %opt_srcdir ) { > my $tarball = "${dir}BACKUP_${ymd}.tar.gz"; > run_cmd( tar => 'cvzf', $tarball, $dir ); > run_cmd( mv => $tarball, $opt_destination ); > } > > sub run_cmd { > system { $_[ 0 ] } @_; > print "Done: @_\n"; > } > > (Code ohne Gew??hr.) > > Das ist etwas hakelig, weil dein Mapping-Hash noch nicht richtig > verwendet wird??? aber naja, es ist halt zu erkennen, wie es > aussehen sollte. > > Um es richtig rund zu machen fehlen da jetzt noch etwas POD und > ein paar Aufrufe von Pod::Usage. > > Gruss, > -- > #Aristoteles > *AUTOLOAD=*_=sub{s/(.*)::(.*)/print$2,(",$\/"," ")[defined > wantarray]/e;$1}; > &Just->another->Perl->hacker; > _______________________________________________ > Cologne-pm mailing list > Cologne-pm at pm.org > http://mail.pm.org/mailman/listinfo/cologne-pm From mike at lamertz.net Fri Nov 11 01:30:08 2005 From: mike at lamertz.net (Michael Lamertz) Date: Fri, 11 Nov 2005 10:30:08 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <31848.136.8.152.14.1131698324.squirrel@dergah> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <31848.136.8.152.14.1131698324.squirrel@dergah> Message-ID: <20051111093008.GP4653@lamertz.net> 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 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 From cem.sakaryali at easi.de Fri Nov 11 01:47:35 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Fri, 11 Nov 2005 10:47:35 +0100 (Westeuropäische Normalzeit) Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051111093008.GP4653@lamertz.net> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <31848.136.8.152.14.1131698324.squirrel@dergah> <20051111093008.GP4653@lamertz.net> Message-ID: <55186.136.8.152.14.1131702455.squirrel@dergah> 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 > > 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 > From Philip.Zembrod at web.de Fri Nov 11 03:58:35 2005 From: Philip.Zembrod at web.de (Philip Zembrod) Date: Fri, 11 Nov 2005 12:58:35 +0100 Subject: [Cologne-pm] Hallo zusammen Message-ID: <393747331@web.de> Moin, jetzt sollte es mit der Anmeldung geklappt haben. Da bin ich also. Gru? Philip From mike at lamertz.net Fri Nov 11 04:27:58 2005 From: mike at lamertz.net (Michael Lamertz) Date: Fri, 11 Nov 2005 13:27:58 +0100 Subject: [Cologne-pm] Hallo zusammen In-Reply-To: <393747331@web.de> References: <393747331@web.de> Message-ID: <20051111122758.GR4653@lamertz.net> On Fri, Nov 11, 2005 at 12:58:35PM +0100, Philip Zembrod wrote: > > Moin, > > jetzt sollte es mit der Anmeldung geklappt haben. Da bin ich also. Siehst'e, geht doch! War das Anmelde-Dingens als SPAM markiert? Wenn ja, haette ich gerne den Grund. Evtl. kann man dann durch die Mailman-Config 'was drehen, damit sowas nicht dem naechsten passiert... -- 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 From Philip.Zembrod at web.de Fri Nov 11 07:45:14 2005 From: Philip.Zembrod at web.de (Philip Zembrod) Date: Fri, 11 Nov 2005 16:45:14 +0100 Subject: [Cologne-pm] Hallo zusammen Message-ID: <393948895@web.de> Michael Lamertz schrieb am 11.11.05 13:28:40: > > Siehst'e, geht doch! War das Anmelde-Dingens als SPAM markiert? Ja, und zwar als die schlimme Kategorie. Spam-Wahrscheinlichkeit > 75% laut web.de-Filter. > Wenn ja, haette ich gerne den Grund. Evtl. kann man dann durch die > Mailman-Config 'was drehen, damit sowas nicht dem naechsten passiert... Keine Ahnung. Ich werd vielleicht mal web.de anschreiben. Gru? Philip From pagaltzis at gmx.de Fri Nov 11 08:20:08 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Fri, 11 Nov 2005 17:20:08 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051111093008.GP4653@lamertz.net> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <31848.136.8.152.14.1131698324.squirrel@dergah> <20051111093008.GP4653@lamertz.net> Message-ID: <20051111162008.GA29499@klangraum> * Michael Lamertz [2005-11-11 10:35]: > Also, 'tar => 1,2,3' macht nix anderes, als Dir eine Liste > ('tar', 1, 2, 3) zu erzeugen. Ja, oder um es anders zu sagen, der `=>` ist nichts anderes als ein Komma, das es einem erspart, wenn man auf der linken Seite einen sehr einfach String hat, ihn in Anf?hrungszeichen zu setzen. (Der String darf nur Buchstaben, Ziffern und Unterstriche enthalten.) > 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 @-) Das wichtige hierbei ist, dass system @arguments; zweideutig ist, wenn @arguments nur ein Element enth?lt. Dann kann die Funktion n?mlich nicht unterscheiden, ob man sie als `system( $shellkommando )` aufgerufen hat (was die erw?hnten Shell-Metazeichen-Probleme birgt) oder als `system( @arguments )`. Der Aufruf der Form `system { $arguments[0] } @arguments` dagegen ist immer eindeutig, auch wenn @arguments nur ein Element enth?lt. Finde ich ehrlich gesagt nervt?tend umst?ndlich ? wo Perl es einem doch sonst immer so leicht macht, gleich die sichere Variante zu verwenden (zB `open` mit drei Argumenten). Aber damit muss man halt leben? > Btw.: Wusstet Ihr, dass $0 bei Perl von aussen anscheinend > nicht ueberschrieben werden kann? Jepp. Aus `perldoc perlvar`: On some (read: not all) operating systems assigning to $0 modifies the argument area that the "ps" program sees. On some platforms you may have to use special "ps" options or a different "ps" to see the changes. Modifying the $0 is more useful as a way of indicating the current program state than it is for hiding the program you're running. (Mnemonic: same as sh and ksh.) Note that there are platform specific limitations on the the maximum length of $0. In the most extreme case it may be limited to the space occupied by the original $0. In some platforms there may be arbitrary amount of padding, for example space characters, after the modified name as shown by "ps". In some platforms this padding may extend all the way to the original length of the argument area, no matter what you do (this is the case for example with Linux 2.2). Note for BSD users: setting $0 does not completely remove "perl" from the ps(1) output. For example, setting $0 to "foobar" may result in "perl: foobar (perl)" (whether both the "perl: " prefix and the " (perl)" suffix are shown depends on your exact BSD variant and version). This is an operating system feature, Perl cannot help it. M.a.W., das Ver?ndern von $0 ist extrem plattformspezifisch und daher keine besonders gute Angewohnheit. Gruss, -- #Aristoteles *AUTOLOAD=*_=sub{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; &Just->another->Perl->hacker; From pagaltzis at gmx.de Fri Nov 11 08:20:21 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Fri, 11 Nov 2005 17:20:21 +0100 Subject: [Cologne-pm] Hallo zusammen In-Reply-To: <393747331@web.de> References: <393747331@web.de> Message-ID: <20051111162021.GB29499@klangraum> Hallo Philip, * Philip Zembrod [2005-11-11 13:00]: > jetzt sollte es mit der Anmeldung geklappt haben. Da bin ich > also. willkommen in der Runde. :-) Hat Detlef es auch geschafft? Gruss, -- Aristoteles Pagaltzis // From mike at lamertz.net Fri Nov 11 12:04:28 2005 From: mike at lamertz.net (Michael Lamertz) Date: Fri, 11 Nov 2005 21:04:28 +0100 Subject: [Cologne-pm] script auf mehreren CPU's starten In-Reply-To: <20051111162008.GA29499@klangraum> References: <29583.136.8.152.14.1131619931.squirrel@dergah> <20051110183014.GN29499@klangraum> <31848.136.8.152.14.1131698324.squirrel@dergah> <20051111093008.GP4653@lamertz.net> <20051111162008.GA29499@klangraum> Message-ID: <20051111200428.GS4653@lamertz.net> Tsk, tsk, tsk, Aristoteles, hattest Du eine schlaflose Nacht, oder hast Du meinen Post einfach nicht gelesen? ;-) On Fri, Nov 11, 2005 at 05:20:08PM +0100, A. Pagaltzis wrote: > * Michael Lamertz [2005-11-11 10:35]: > > Also, 'tar => 1,2,3' macht nix anderes, als Dir eine Liste > > ('tar', 1, 2, 3) zu erzeugen. > > Ja, oder um es anders zu sagen, der `=>` ist nichts anderes als > ein Komma, das es einem erspart, wenn man auf der linken Seite > einen sehr einfach String hat, ihn in Anf?hrungszeichen zu > setzen. (Der String darf nur Buchstaben, Ziffern und Unterstriche > enthalten.) Das hatte ich exakt einen Absatz ueber der von Dir gequoteten Zeile auch beschrieben: $self wrote direkt darueber: > 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 ---------- > > Btw.: Wusstet Ihr, dass $0 bei Perl von aussen anscheinend > > nicht ueberschrieben werden kann? > > Jepp. Aus `perldoc perlvar`: > > (docs snipped) > > M.a.W., das Ver?ndern von $0 ist extrem plattformspezifisch und > daher keine besonders gute Angewohnheit. Irrtum. Das bezieht sich auf die Veraenderung von $0 durch das laufende Script selber, wie es z.B. screen auch macht. Im ps wird dann naemlich SCREEN angezeigt. ---------- fake.pl ---------- #!/usr/bin/perl $0 = 'FAKED'; sleep 30; ---------- fake.pl ---------- und ---------- snip ---------- nijushiho:~$ ./fake.pl & [1] 4993 nijushiho:~$ ps -aef | grep 4993 mlamertz 4993 4948 0 20:47 pts/2 00:00:00 FAKED mlamertz 4995 4948 0 20:47 pts/2 00:00:00 grep 4993 nijushiho:~$ ---------- snip ---------- Das Vorgaukeln des falschen Namens von aussen ist durchaus nicht unueblich. Ein allseits bekanntes Beispiel ist z.B. gzip/gunzip: ---------- snip ---------- nijushiho:~$ ls -li /bin/gzip /bin/gunzip 3620878 -rwxr-xr-x 4 root root 53676 Jul 11 22:18 /bin/gunzip* 3620878 -rwxr-xr-x 4 root root 53676 Jul 11 22:18 /bin/gzip* nijushiho:~$ ---------- snip ---------- See you datt? Ist dasselbe Programm. Benutzt Du nun das 'call'-Script von meiner Mail heute Mittag, dann kannst Du damit aus gzip ganz einfach gunzip machen, und das Programm reagiert entsprechend auf die Aenderung: ---------- snip ---------- tweety:~$ ./call gzip gunzip --help gunzip 1.3.5 (2002-09-30) usage: gunzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] -c --stdout write on standard output, keep original files unchanged -d --decompress decompress -f --force force overwrite of output file and compress links -h --help give this help -l --list list compressed file contents -L --license display software license -n --no-name do not save or restore the original name and time stamp -N --name save or restore the original name and time stamp -q --quiet suppress all warnings -r --recursive operate recursively on directories -S .suf --suffix .suf use suffix .suf on compressed files -t --test test compressed file integrity -v --verbose verbose mode -V --version display version number -1 --fast compress faster -9 --best compress better --rsyncable Make rsync-friendly archive file... files to (de)compress. If none given, use standard input. Report bugs to . tweety:~$ ---------- snip ---------- Und so wie's aussieht (nochmal, siehe Mail von vorhin), geht das bei Perl irgendwie nicht, da der Fake-Name eben nicht angezeigt wird. Ich hab's gerade bei 'nem Shell-Script ausprobiert, und da funktioniert's auch nicht. Haengt wohl damit zusammen, dass die #!-Zeile ja erst noch den Interpreter dazwischen schaltet. Wieder 'was gelernt... -- 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 From mike at lamertz.net Sun Nov 20 10:09:10 2005 From: mike at lamertz.net (Michael Lamertz) Date: Sun, 20 Nov 2005 19:09:10 +0100 Subject: [Cologne-pm] Website-Status... Message-ID: <20051120180910.GF2644@lamertz.net> Hi, wollte Euch nur auf dem Laufenden halten. Wir hatten ja zuvor auf der Liste, und auch beim letzten Treffen besprochen, dass wir die Gruppe vielleicht wieder ein bischen reanimiert bekommen. Ich habe die Build-Scripte fuer die Website ge4ufr43um0rt, nach subversion uebertragen und warte derzeit auf die aktuellen Zugangsdaten fuer den Server-Upload (Nach einem erfolgreichen Angriff im letzten Jahr wurde der Service umgezogen). later... -- 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 From pagaltzis at gmx.de Sun Nov 20 11:09:10 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Sun, 20 Nov 2005 20:09:10 +0100 Subject: [Cologne-pm] Website-Status... In-Reply-To: <20051120180910.GF2644@lamertz.net> References: <20051120180910.GF2644@lamertz.net> Message-ID: <20051120190910.GR29499@klangraum> Hi Mike, * Michael Lamertz [2005-11-20 19:15]: > wollte Euch nur auf dem Laufenden halten. danke. Gruss, -- #Aristoteles *AUTOLOAD=*_;sub _{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; &Just->another->Perl->hacker; From cem.sakaryali at easi.de Sun Nov 20 13:17:23 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Sun, 20 Nov 2005 22:17:23 +0100 Subject: [Cologne-pm] backup script In-Reply-To: <20051120190910.GR29499@klangraum> References: <20051120180910.GF2644@lamertz.net> <20051120190910.GR29499@klangraum> Message-ID: <1132521444.4400.5.camel@dervish> mein backup script funktioniert sehr gut. Nochmal vielen dank an alle. Cem On Sun, 2005-11-20 at 20:09 +0100, A. Pagaltzis wrote: > Hi Mike, > > * Michael Lamertz [2005-11-20 19:15]: > > wollte Euch nur auf dem Laufenden halten. > > danke. > > Gruss, From pagaltzis at gmx.de Tue Nov 22 01:42:46 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Tue, 22 Nov 2005 10:42:46 +0100 Subject: [Cologne-pm] Closed mailing list archives Message-ID: <20051122094246.GB14735@klangraum> Hi all, I am a member of cologne.pm, where the action is currently a tad slow; so I was looking at the other German groups in an attempt to find ones which are more lively. Like ours, most of the websites are comatose (to put it politely); sometimes they?ve not been updated in five years. (Ours was last touched two years ago, though we?re working on that.) But I know from experience with our group that the mailing list is a much better indicator of the group?s health than the site usually is. So rather than looking at the sites at all, I went straight for the mailing list archives on all of them. And ran right into a wall in most cases. Almost everywhere, archives are viewable only by subscribers. Is that really necessary? I doubt that anything particularly private is being discussed; but the mailing lists are the only reliable gauge of a group?s activity level available to external observers. They?re also the only reliable criterion for how topical the group?s activities are. Putting them behind a registration wall amounts to a death knell if the group is already mostly-dormant. So here?s my request: please implore the user group leaders to make their archives publically viewable if at all conceivable. Regards, -- # Aristotle Pagaltzis // *AUTOLOAD=*_;sub _{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; &Just->another->Perl->hacker; From user_groups at pm.org Wed Nov 23 05:45:41 2005 From: user_groups at pm.org (Dave Cross) Date: Wed, 23 Nov 2005 13:45:41 +0000 Subject: [Cologne-pm] Closed mailing list archives In-Reply-To: <20051122094246.GB14735@klangraum> References: <20051122094246.GB14735@klangraum> Message-ID: <43847285.6070809@pm.org> A. Pagaltzis wrote: > So here?s my request: please implore the user group leaders to > make their archives publically viewable if at all conceivable. Well, it's up to the individual groups to decide whether or not they make their mailing list archives public. I know that some people have very strong objections to that kind of thing. But I'll suggest it to them. Dave... From cem.sakaryali at easi.de Sun Nov 27 15:56:56 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Mon, 28 Nov 2005 00:56:56 +0100 Subject: [Cologne-pm] finde aritmatik operator fuer 57a27b37c17d47=777 In-Reply-To: <20051122094246.GB14735@klangraum> References: <20051122094246.GB14735@klangraum> Message-ID: <1133135816.20647.23.camel@dervish> @a=@b=@c=@d=('*','-','+','/'); foreach $a (@a) { foreach $b (@b) { foreach $c (@c) { foreach $d (@d) { $string = eval ("57 $a 27 $b 37 $c 17 $d 47"); if ($string==777) {print "a$a b$b c$c d$d\n"} } } } } Ich mag perl :D Gruss Cem From pagaltzis at gmx.de Sun Nov 27 17:15:56 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Mon, 28 Nov 2005 02:15:56 +0100 Subject: [Cologne-pm] finde aritmatik operator fuer 57a27b37c17d47=777 In-Reply-To: <1133135816.20647.23.camel@dervish> References: <1133135816.20647.23.camel@dervish> Message-ID: <20051128011556.GE30755@klangraum> * Cem Sakaryali [2005-11-28 01:00]: > @a=@b=@c=@d=('*','-','+','/'); > > foreach $a (@a) { > foreach $b (@b) { > foreach $c (@c) { > foreach $d (@d) { > $string = eval ("57 $a 27 $b 37 $c 17 $d 47"); > if ($string==777) {print "a$a b$b c$c d$d\n"} > } > } > } > } > > > Ich mag perl :D H?bsch! :-) Aber warum vier Arrays? :-) Ausserdem w?rde ich die Bedingung gleich in den Ausdruck mit reinschreiben. Dann kannst du den ganzen Ausdruck inkl. Ergebnis an einer einzigen Stelle ummodeln. Dann w?rde ich das eval() auch gleich in die if-Bedingung verschieben und den erfolgreichen Ausdruck als solchen ausgeben. Das ergibt zusammen: my @ops = qw( * - + / ); for my $i ( @ops ) { for my $j ( @ops ) { for my $k ( @ops ) { for my $l ( @ops ) { my $expr = "777 == 57 $i 27 $j 37 $k 17 $l 47"; print $expr, "\n" if eval $expr; } } } } ($a und $b solltest du ?brigens generell meiden, weil das die Spezialvariablen sind, die sort() verwendet.) Das kannst du dann sch?n in ein bisschen Zauberei mit sprintf und Set::CrossProduct umschreiben: use Set::CrossProduct; my @ops = qw( * + - / ); my $expr = '777 == 57 %s 27 %s 37 %s 17 %s 47'; my $xp = Set::CrossProduct->new( [ map \@ops, $expr =~ /%s/g ] ); while( my @attempt = $xp->get ) { my $attempt = sprintf $expr, @attempt; print $attempt, "\n" if eval $attempt; } Die Schachtelungstiefe ergibt sich hier implizit aus der Anzahl der %s-Platzhalter im Ausdruck. Gruss, -- #Aristoteles *AUTOLOAD=*_;sub _{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}; &Just->another->Perl->hacker; From mike at lamertz.net Wed Nov 30 15:00:04 2005 From: mike at lamertz.net (Michael Lamertz) Date: Wed, 30 Nov 2005 23:00:04 UT Subject: [Cologne-pm] Treffen am 14.12.2005... Message-ID: <20051130230004.5E6AE1C8174@tweety> Yo! Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des Monats, also am 14.12.2005, in der Sansibar Trierer Str. 41 50674 K?ln ab ca. 18:30 Dies ist eine automatisch erzeugte Nachricht. Sollte mittlerweile auf der Liste ein anderer Termin verabredet worden sein, so ist diese Mail hinf?llig. From Philip.Zembrod at web.de Thu Dec 1 00:27:45 2005 From: Philip.Zembrod at web.de (Philip Zembrod) Date: Thu, 01 Dec 2005 09:27:45 +0100 Subject: [Cologne-pm] Treffen am 14.12.2005... Message-ID: <412862183@web.de> Michael Lamertz schrieb am 01.12.05 00:00:47: > > Yo! > > Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des Monats, also am > 14.12.2005, in der Moin zusammen, ich kann diesmal leider nicht. Gru? Philip From mike at lamertz.net Thu Dec 1 00:44:04 2005 From: mike at lamertz.net (Michael Lamertz) Date: Thu, 1 Dec 2005 09:44:04 +0100 Subject: [Cologne-pm] Treffen am 14.12.2005... In-Reply-To: <412862183@web.de> References: <412862183@web.de> Message-ID: <20051201084404.GA19832@lamertz.net> Hey, On Thu, Dec 01, 2005 at 09:27:45AM +0100, Philip Zembrod wrote: > > > Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des Monats, also am > > 14.12.2005, in der > > Moin zusammen, > > ich kann diesmal leider nicht. Schade. Ich werde kommen. Wer noch? -- 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 From Susan.Dittmar at gmx.de Thu Dec 1 01:21:53 2005 From: Susan.Dittmar at gmx.de (Susan Dittmar) Date: Thu, 1 Dec 2005 10:21:53 +0100 Subject: [Cologne-pm] Treffen am 14.12.2005... In-Reply-To: <20051201084404.GA19832@lamertz.net> References: <412862183@web.de> <20051201084404.GA19832@lamertz.net> Message-ID: <20051201092153.GB6502@eureca.de> > Ich werde kommen. Wer noch? Ich habs vor. Gru?, Susan From cem.sakaryali at easi.de Thu Dec 1 01:23:05 2005 From: cem.sakaryali at easi.de (Cem Sakaryali) Date: Thu, 1 Dec 2005 10:23:05 +0100 (Westeuropäische Normalzeit) Subject: [Cologne-pm] Treffen am 14.12.2005... In-Reply-To: <20051201084404.GA19832@lamertz.net> References: <412862183@web.de> <20051201084404.GA19832@lamertz.net> Message-ID: <55871.136.8.152.14.1133428985.squirrel@dergah> Hallo, ich werde auch versuchen zu kommen. Gruss Cem On Thu, December 1, 2005 09:44, Michael Lamertz wrote: > Hey, > > On Thu, Dec 01, 2005 at 09:27:45AM +0100, Philip Zembrod wrote: >> >> > Das n?chste Treffen findet wie gewohnt statt am 2. Mittwoch des >> Monats, also am >> > 14.12.2005, in der >> >> Moin zusammen, >> >> ich kann diesmal leider nicht. > > Schade. > > Ich werde kommen. Wer noch? > > -- > 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 > From towo at sozial-herausgefordert.de Thu Dec 1 06:15:44 2005 From: towo at sozial-herausgefordert.de (Tobias Wolter) Date: Thu, 1 Dec 2005 15:15:44 +0100 Subject: [Cologne-pm] Treffen am 14.12.2005... In-Reply-To: <20051201084404.GA19832@lamertz.net> References: <412862183@web.de> <20051201084404.GA19832@lamertz.net> Message-ID: <20051201141544.GA28495@home.ydal.de> On 2005-12-01T09:44:04+0100 (Thursday), Michael Lamertz wrote: > Ich werde kommen. Wer noch? Kann ja mal gucken, ob ich da Zeit hab'. -- Gegen Softwarepatente in Europa: http://swpat.ffii.org./ Mister Teatime had a truly brilliant mind, but it was brilliant like a frac- tured mirror, all marvellous facets and rainbows but, ultimately, also some- thing that was broken. (Terry Pratchett in `Hogfather') -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: Digital signature Url : http://mail.pm.org/pipermail/cologne-pm/attachments/20051201/799d30df/attachment.bin From pagaltzis at gmx.de Thu Dec 1 13:51:18 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Thu, 1 Dec 2005 22:51:18 +0100 Subject: [Cologne-pm] Treffen am 14.12.2005... In-Reply-To: <20051201084404.GA19832@lamertz.net> References: <412862183@web.de> <20051201084404.GA19832@lamertz.net> Message-ID: <20051201215118.GC2824@klangraum> * Michael Lamertz [2005-12-01 09:50]: > Ich werde kommen. Wer noch? Bin dabei. Gruss, -- Aristoteles ?Wer nicht ?ber sich selbst lachen kann, nimmt das Leben nicht ernst genug.? From pagaltzis at gmx.de Sat Dec 3 21:09:38 2005 From: pagaltzis at gmx.de (A. Pagaltzis) Date: Sun, 4 Dec 2005 06:09:38 +0100 Subject: [Cologne-pm] Mehr Leben in die Bude? Message-ID: <20051204050938.GR2824@klangraum> Hallo z?amm, was haltet ihr von diesem Vorschlag? : > I think, some Perlmonger-groups should do some kind of > "Marketing". I think Dresden.pm makes a good job. They provide > a Perl-Talk (Tutorial) at the Linux-Day in Dresden, so they are > in the public's mind. > > Frankfurt.pm is currently growing. I think this is a result of > the activies. Not in "Marketing" like the Dresden.pm does, but > the members are very active at the base: One of them is the > webmaster of Perl-Community.de, that provides a Wiki (FAQ, > Perldoc (some in german) and some snippets), a Forum and lots > more. Some of Frankfurt.pm are moderating the Forum on > Perl-Community.de and on http://openbc.com/ > > Cologne.pm may should use some websites (e.g. > perl-community.de, openbc.com) to announce meetings and talks. Dass die Dresdener ein Tutorium am Linux-Tag veranstalten ist ja garkeine schlechte Idee ? die Cologne Perl-Users sind ja mehr oder weniger durch meine Pr?senz auf der Liste des Linux-Workshop K?ln