From Roland.Bauer at mediaprint.at Wed Jan 5 06:11:29 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Perl for Psion Message-ID: * * * vienna-pm-list * * * Man wuerde es nicht glauben ;-) perl for psion http://www.linuxstart.com/~oflebbe/perl/perl5.html Wer hat damit schon experimentiert? Roland -- roland.bauer@mediaprint.at internet-applikationen TEL: +43-1-36000/3949 ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Fri Jan 7 08:08:35 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Perl-Checklist Message-ID: * * * vienna-pm-list * * * Falls Perl wieder einmal Probleme zu machen scheint, ist folgende Checkliste nuetzlich: http://martin.sluka.de/Perl-Checkliste.html Roland -- roland.bauer@mediaprint.at internet-applikationen TEL: +43-1-36000/3949 ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Angelo.Bindi at weltbild.de Wed Jan 12 09:07:50 2000 From: Angelo.Bindi at weltbild.de (Angelo Bindi) Date: Thu Aug 5 00:23:27 2004 Subject: Perl und ttyS1 Message-ID: <387C98C5.A1713E15@publicadata.de> * * * vienna-pm-list * * * Hallo alle zusammen, bin ein blutiger An?nger in Perl. W?rde jedoch gerne wissen wie es m?glich ist unter Linux eine Serielle Kommunikation zu protokollieren.Mein vieleicht naiver Ansatz war nun folgende Scripte - die, wie war es anders zu erwarten, nicht funktionieren :-( . #!/usr/bin/perl -w use strict; open(SERIAL_IN_ttyS0,"/dev/ttyS0") || die "Konnte serielle Leseverbindung zu Port ttyS0 nicht oeffnen. Folgender Fehler trat auf -> $!.\n"; open(SERIAL_OUT_ttyS1,">>/dev/ttyS1") || die "Konnte Schreibverbindung zu Port ttyS1 nicht oeffnen. Folgender Fehler trat auf -> $!.\n"; open(SERIAL_IN_LOG_ttyS0,">>/tmp/serial_in_log_tty0") || die "Konnte Schreibverbindung zur Datei /tmp/serial_in_log_tty0 nicht oeffnen. Folgender Fehler trat auf -> $!.\n"; while () { chomp $_; print "$_\n"; print SERIAL_OUT_ttyS1 "$_\n"; print SERIAL_IN_LOG_ttyS0 time.".$_\n"; } close(SERIAL_IN_ttyS0) || die "Konnte serielle Leseverbindung ttyS0 nicht schliessen. Folgender Fehler trat auf -> $!.\n";; close(SERIAL_OUT_ttyS1) || die "Konnte serielle Schreibverbindung ttyS1 nicht schliessen. Folgender Fehler trat auf -> $!.\n"; close(SERIAL_IN_LOG_ttyS0) || die "Konnte Schreibverbindung zur Datei /tmp/serial_in_log_tty0 nicht schliessen. Folgender Fehler trat auf -> $!.\n"; Dies war die eine h?lft und nun die zweite, die den gelesenen "Kram" wieder rausschicken soll. #!/usr/bin/perl -w use strict; open(SERIAL_IN_ttyS1,"/dev/ttyS1") || die "Konnte serielle Leseverbindung zu Port ttyS1 nicht oeffnen. Folgender Fehler trat auf -> $!.\n"; open(SERIAL_OUT_ttyS0,">>/dev/ttyS0") || die "Konnte Schreibverbindung zu Port ttyS1 nicht oeffnen. Folgender Fehler trat auf -> $!.\n"; open(SERIAL_IN_LOG_ttyS1,">>/tmp/serial_in_log_tty1") || die "Konnte Schreibverbindung zur Datei /tmp/serial_in_log_tty1 nicht oeffnen. Folgender Fehler trat auf -> $!.\n"; while () { chomp $_; print "$_\n"; print SERIAL_OUT_ttyS0 "$_\n"; print SERIAL_IN_LOG_ttyS1 time.".$_\n"; } close(SERIAL_IN_ttyS1) || die "Konnte serielle Leseverbindung ttyS1 nicht schliessen. Folgender Fehler trat auf -> $!.\n";; close(SERIAL_OUT_ttyS0) || die "Konnte serielle Schreibverbindung ttyS0 nicht schliessen. Folgender Fehler trat auf -> $!.\n"; close(SERIAL_IN_LOG_ttyS1) || die "Konnte Schreibverbindung zur Datei /tmp/serial_in_log_tty1 nicht schliessen. Folgender Fehler trat auf -> $!.\n"; Vieleicht kann mir ja jemand helfen :-))) ????? ciao Angelo ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Thu Jan 13 08:41:10 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Perl und ttyS1 Message-ID: * * * vienna-pm-list * * * Hallo Angelo, >bin ein blutiger An?nger in Perl. W?rde jedoch gerne wissen wie es >m?glich ist unter Linux eine Serielle Kommunikation zu >protokollieren.Mein vieleicht naiver Ansatz war nun folgende Scripte - >die, wie war es anders zu erwarten, nicht funktionieren :-( . Ich habe mir den Code nicht genau angesehen und koennte das auch (mangels geeignetem OS) gar nicht ausprobieren. Aber vielleicht helfen Dir folgende Perl-Module weiter: Device::SerialPort - Linux/POSIX emulation of Win32::SerialPort functions. Win32::SerialPort - User interface to Win32 Serial API calls Die findest Du auf http://search.cpan.org/ Oder Du beschreibst das Problem genauer ;-) Roland ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From roland.bauer at fff.at Sun Jan 16 05:38:22 2000 From: roland.bauer at fff.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Perl vs Bier im Jaenner Message-ID: <3881ADAE.9E43D3A3@fff.at> * * * vienna-pm-list * * * Oder koennte man das kombinieren? Wann? Wo? ;-) Das war die offizielle Einladung zu einem weiteren Jaenner-Treffen der Perl Mongers. Detailvorschlaege? Oder so wie letztes Mal? Schoene Gruesse Roland -- roland.bauer@fff.at http://www.fff.at/fff/roland/ job: +43-1-36000/3949 ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From p.seitz at koehler-seitz.de Sun Jan 16 09:01:08 2000 From: p.seitz at koehler-seitz.de (Peter Seitz jun.) Date: Thu Aug 5 00:23:27 2004 Subject: Probleme bei Stringmanipulation Message-ID: <1554B01C1D@bzs.tu-graz.ac.at> * * * vienna-pm-list * * * Hallo Perl Gurus, ich beziehe mich mal etwas auf die Antwort von Marcel Grunauer vom 27. Dec 1999. Leider war meine Problembeschreibung nicht ganz genau, aber die Antwort hat mir doch etwas weitergeholfen. Problem: Ich habe eine Zeile aus einem RC-File fuer ein Windows- Programm (C++), in der Strings eigebettet sind. Im String werden Hochkommas entweder duch wiederholen "" oder durch maskieren \" eingebettet. Ich moechte mir nun den ersten auftretenden String ermitteln einschliesslich der eingebettetet "" oder \" Hochhkommas. Ich habe nun nachfolgendes kleines Testprogramm geschrieben. Das Extrahieren des Strings klappt nun ganz gut mit der Subroutine. (Kommentare zum Code erwuenscht!!! Ich glaube, dass ich das nicht optimal programmiert habe, kanns momentan aber noch nicht besser). Ich habe nun Probleme, wenn ich den ermittelten String in der Originalzeile durch eine andere Zeichenkette ersetzen will. Offensichtlich befinde ich mich da im Skalar-Modus und die Ersetzung wird nicht richtig durchgefuehrt. Bei meinem 2. Beispiel stuerzt das Programm ab mit folgender Fehlermeldung: /"BB:155 Speichern|+Editieren,457,45,100,1155,1158,50,100,6503"/: ?+*{} follows nothing in regexp at test3.pl line 11, chunk 2 Ich bin hier voellig ratlos. Kann mich jemand auf die richtige Spur lenken? Danke im voraus. #!/usr/bin/perl -w use strict; while (defined (my $zeile = )) { chomp $zeile; my $translate; my @values = &extract_string ($zeile,$translate); print "Val: zeile:'$values[0]'\n\nVal: translate:'$values[1]'\n"; my $doof = $values[0]; $translate = "\"" . $values[1] . "\""; $doof =~ s/$translate/STRING_NAME_01/; print "\"$doof\"\n"; print "\n"; my $targetlanguage = ; } sub extract_string { # extract the first quoted string from imput line and return it on # variable $match my ($inputline,$match) = @_; # find out the first appearance of ", "" and """ my @test = split (/"/, $inputline); my $possingle = length $test[0]; # first appearance of " @test = split (/""/, $inputline); my $posdouble = length $test[0]; # first appearance of "" @test = split (/"""/, $inputline); my $postriple = length $test[0]; # first appearance of """ $postriple = 0 if ($postriple == length $inputline); print "Single:$possingle - Double:$posdouble - Triple:$postriple\n"; my $testline = $inputline; my $countdoublequotes = () = ($testline =~ /("")/g); my $counttriplequotes = () = ($testline =~ /(""")/g); print "Doublequote:$countdoublequotes - Triplequotes:$counttriplequotes\n"; if ($possingle == $posdouble & $posdouble != $postriple) { $match = ""; # first string in line is empty print "empty sttring\n"; } else { print "wir tun was\n"; if ($possingle == $postriple) { # first appearance of """ ($testline = $testline) =~ s/"""/"\x7f\x7f\x7f/; } if ($counttriplequotes > 1) { ($testline = $testline) =~ s/"""/\x7f\x7f\x7f"/; } ($testline = $testline) =~ s/""/\x7f\x7f\x7f/g; ($match) = ($testline =~ /"([^"]+?)"/); $match =~ s/\x7f\x7f\x7f/""/g; } #print (defined $match && length $match ? $match : "+++"); ($inputline,$match); } # sub extract_string __DATA__ CONTROL "Mehrere Moeglichkeiten vorhanden. Eine Markieren und ""oeffnen"" anklicken.", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 6, 151, 18 CONTROL "BB:155 Speichern|+Editieren,457,45,100,1155,1158,50,100,6503", -2, "STATIC", SS_LEFT | WS_CHILD | NOT WS_VISIBLE | WS_BORDER | WS_GROUP, 147, 45, 33, 20 CONTROL "", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 6, 151, 18 CONTROL """Anhang"" information", 102, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE, 47, 33, 112, 10 CONTROL "Kommentiere (""> "") den Text", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 CONTROL "Kommentiere (""> "") den ""Text""", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 CONTROL "Kommentiere ("" """" "") den ""Text""", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 CONTROL """Kommentiere"" (""> "") den ""Text""", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 With best compliments Peter Seitz -- Graz University of Technology, Austria - Fac. f. Civil Engineering mailto:seitz@bzs.tu-graz.ac.at - http://wwwbzs.tu-graz.ac.at/~seitz/ ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Sun Jan 16 09:41:20 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Probleme bei Stringmanipulation Message-ID: * * * vienna-pm-list * * * Hallo Peter, ich hab's nicht genau durchschaut, aber es hat irgendwas damit zu tun, dass Dein Trennzeichen "|" gleichzeitig das Pipe-Zeichen ist. Und das Script wartet dann auf Eingaben von der Console. Wenn man das "|" in den Daten durch zb "#" ersetzt, dann laeuft das Programm wenigstens durch. Vielleicht genuegt Dir der Hinweis schon, sonst muesste ich genauer schauen. Roland ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Sun Jan 16 10:03:59 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Probleme bei Stringmanipulation Message-ID: * * * vienna-pm-list * * * Noch ein Tip: > $translate = "\"" . $values[1] . "\""; Dafuer koennte man auch die qq-Funktion verwenden: $translate = qq("$values[1]"); oder $translate = qq#"$values[1]"#; ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Sun Jan 16 10:29:23 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Probleme bei Stringmanipulation Message-ID: * * * vienna-pm-list * * * Wenn man die Daten kennt, funktioniert auch folgende Spezialloesung: #!/usr/bin/perl -w use strict; while () { chomp; my $translate; my $match = &extract_string ($_); print "INPUT: $_\n"; print "MATCH: $match\n"; print "---------------\n"; } sub extract_string { # extract the first quoted string from imput line and return it on # variable $match my ($inputline) = @_; $inputline =~ s/^[^"]*"//; # alles wegschmeissen bis inkl Anfz am Beginn # einzelne Zeichen und Kombinationen schrittweise abarbeiten bis zum # ersten Anfz das nicht als Kombination auftritt my $match; while ($inputline =~ s/^([^"]|\\"|"")//) { $match .= $1; # die Portionen zusammenhaengen } # unescape $match =~ s/\\"/"/g; $match =~ s/""/"/g; return $match; } # sub extract_string __DATA__ CONTROL "Mehrere Moeglichkeiten vorhanden. Eine Markieren und ""oeffnen"" anklicken.", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 6, 151, 18 CONTROL "BB:155 Speichern|+Editieren,457,45,100,1155,1158,50,100,6503", -2, "STATIC", SS_LEFT | WS_CHILD | NOT WS_VISIBLE | WS_BORDER | WS_GROUP, 147, 45, 33, 20 CONTROL "", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 6, 151, 18 CONTROL """Anhang"" information", 102, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE, 47, 33, 112, 10 CONTROL "Kommentiere (""> "") den Text", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 CONTROL "Kommentiere (""> "") den ""Text""", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 CONTROL "Kommentiere ("" """" "") den ""Text""", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 CONTROL """Kommentiere"" (""> "") den ""Text""", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Sun Jan 16 12:15:20 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Deutschsprachiges Perl-Tutorial Message-ID: * * * vienna-pm-list * * * http://www.phy.uni-bayreuth.de/~btpa25/perl/perl_main.html Roland ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From hjp at wsr.ac.at Tue Jan 18 04:48:35 2000 From: hjp at wsr.ac.at (Peter J. Holzer) Date: Thu Aug 5 00:23:27 2004 Subject: Perl vs Bier im Jaenner In-Reply-To: <3881ADAE.9E43D3A3@fff.at>; from Roland Bauer on Sun, Jan 16, 2000 at 12:38:22PM +0100 References: <3881ADAE.9E43D3A3@fff.at> Message-ID: <20000118114835.I28473@wsr.ac.at> On 2000-01-16 12:38:22 +0100, Roland Bauer wrote: > Oder koennte man das kombinieren? Ich glaube schon :-) > Wann? Nicht diesen Freitag. hp -- _ | Peter J. Holzer | Nobody should ever have to be |_|_) | Sysadmin WSR / Obmann LUGA | ashamed if they have a secret love | | | hjp@wsr.ac.at | for writing computer programs that __/ | http://wsrx.wsr.ac.at/~hjp/ | actually work. -- Donald E. Knuth -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 371 bytes Desc: not available Url : http://mail.pm.org/archives/vienna-pm/attachments/20000118/d60b4446/attachment.bin From findeisen at nulleins.at Tue Jan 18 10:30:14 2000 From: findeisen at nulleins.at (=?iso-8859-1?Q?J=F6rg?= Findeisen) Date: Thu Aug 5 00:23:27 2004 Subject: Perl vs Bier im Jaenner References: <3881ADAE.9E43D3A3@fff.at> Message-ID: <38849516.56474AE1@nulleins.at> * * * vienna-pm-list * * * #!/mensch/hirn -w use hopfen || die; > Detailvorschlaege? > Oder so wie letztes Mal? Marcel und ich schlagen vor: wann: Donnerstag 27.1.2000, ab 1900 wo: cm (hinterm Rathaus) oder cm2 (m Spittelberg) Kommentare? = ; j?! -- findeisen@nulleins.at ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From michael at wsr.ac.at Tue Jan 18 11:06:24 2000 From: michael at wsr.ac.at (Michael Demelbauer) Date: Thu Aug 5 00:23:27 2004 Subject: Perl vs Bier im Jaenner In-Reply-To: =?iso-8859-1?Q?=3C38849516=2E56474AE1=40nulleins=2Eat=3E=3B_from_J=F6rg_?= =?iso-8859-1?Q?Findeisen_on_Tue=2C_Jan_18=2C_2000_at_05:30:14PM_+0100?= References: <3881ADAE.9E43D3A3@fff.at> <38849516.56474AE1@nulleins.at> Message-ID: <20000118180624.A9975@wsr.ac.at> * * * vienna-pm-list * * * Thus spaketh J?rg Findeisen: [ ... ] > wo: cm (hinterm Rathaus) oder cm2 (m Spittelberg) > > Kommentare? = ; Ganz klar ist mir das wo: ja nicht. Bitte um genaue Angabe wieviele cm hinter dem Rathaus und von welcher Richtung aus gesehen :-) . lG - Michl -- Michael P. Demelbauer WSR (Wirtschafts- und Sozialwissenschaftliches Rechenzentrum) LUGA (Linux User Group Austria) I have seen the truth and it makes no sense. ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Tue Jan 18 16:24:39 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Re: Perl vs Bier im Jaenner Message-ID: * * * vienna-pm-list * * * <38849516.56474AE1@nulleins.at> <20000118180624.A9975@wsr.ac.at> Message-ID: <3885784F.273EC402@nulleins.at> * * * vienna-pm-list * * * Michael Demelbauer wrote: > > * * * vienna-pm-list * * * > > Thus spaketh J?rg Findeisen: > [ ... ] > > wo: cm (hinterm Rathaus) oder cm2 (m Spittelberg) > > > > Kommentare? = ; > > Ganz klar ist mir das wo: ja nicht. Bitte um genaue Angabe wieviele cm > hinter dem Rathaus und von welcher Richtung aus gesehen :-) . > > lG - Michl > -- Zitat aus http://www.servus-in-wien.at/josephstadt/josephstadt.html: Centimeter I Bei toller Stimmung gibt?s z?nftige Hausmannskost zu kleinen Preisen Hunger Nach Mass-1 cm-1 ATS Gepflegtes Hirter-Bier vom Fass Veranstaltungsraum f. 100 Personen zum unbeschwerten Abfeiern. Mo-Fr 10.00-02.00 Uhr Sa 11.00-02.00, So+Fei 11.00-24.00 Uhr 1080 Wien, Lenaugasse 11 Tel.: 405 78 08 ?ffiTip: U2 Station Rathaus Lenaugasse ist fast parallel zur 2erlinie ich k?nnte versuchen, zu reservieren .... lg j?! -- findeisen@nulleins.at ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From michael at wsr.ac.at Wed Jan 19 02:58:33 2000 From: michael at wsr.ac.at (Michael Demelbauer) Date: Thu Aug 5 00:23:27 2004 Subject: Perl vs. Bier (sorry ich kann nicht) In-Reply-To: ; from Roland Bauer on Tue, Jan 18, 2000 at 11:24:39PM +0100 References: Message-ID: <20000119095833.C10628@wsr.ac.at> * * * vienna-pm-list * * * Thus spaketh Roland Bauer: [ ... ] > <38849516.56474AE1@nulleins.at> <20000118180624.A9975@wsr.ac.at> <3885784F.273EC402@nulleins.at> Message-ID: <3889823B.BAB3DF@fff.at> * * * vienna-pm-list * * * Hallo Joerg, kannst Du bitte zum vorgeschlagenen Termin wann: Donnerstag 27.1.2000, ab 1900 wo: cm (hinterm Rathaus), 1080 Wien, Lenaugasse 11, Tel.: 405 78 08 details: U2 Station Rathaus; Lenaugasse ist fast parallel zur 2erlinie url: http://www.servus-in-wien.at/josephstadt/josephstadt.html etwas reservieren und dann nochmals in der liste ankuendigen? momentan scheinen es ca 5 personen zu sein, die kommen wollen. wer sich mittlerweile entschlossen hat, auch zu kommen, moege das bitte kundtun, damit joerg nicht zu wenig plaetze reserviert. Danke! Wer will, kann auch Codeschnipsel (Perl, wenn geht ...) mitnehmen und wir koennten die dann nebenbei besprechen. Auch Anfaengerfragen sind willkommen. Schoene Gruesse Roland J?rg Findeisen schrieb: > * * * vienna-pm-list * * * > > Michael Demelbauer wrote: > > > > * * * vienna-pm-list * * * > > > > Thus spaketh J?rg Findeisen: > > [ ... ] > > > wo: cm (hinterm Rathaus) oder cm2 (m Spittelberg) > > > > > > Kommentare? = ; > > > > Ganz klar ist mir das wo: ja nicht. Bitte um genaue Angabe wieviele cm > > hinter dem Rathaus und von welcher Richtung aus gesehen :-) . > > > > lG - Michl > > -- > > Zitat aus http://www.servus-in-wien.at/josephstadt/josephstadt.html: > > Centimeter I > Bei toller Stimmung gibt?s z?nftige Hausmannskost zu kleinen Preisen > Hunger Nach Mass-1 cm-1 ATS > Gepflegtes Hirter-Bier vom Fass > Veranstaltungsraum f. 100 Personen zum unbeschwerten Abfeiern. > Mo-Fr 10.00-02.00 Uhr > Sa 11.00-02.00, So+Fei 11.00-24.00 Uhr > 1080 Wien, Lenaugasse 11 > Tel.: 405 78 08 > > ?ffiTip: U2 Station Rathaus > Lenaugasse ist fast parallel zur 2erlinie > > ich k?nnte versuchen, zu reservieren .... > lg > j?! > > -- > findeisen@nulleins.at > ### > You are subscribed to vienna-pm-list > http://www.fff.at/fff/vienna.pm/ -- roland.bauer@fff.at http://www.fff.at/fff/roland/ job: +43-1-36000/3949 ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From roland.bauer at fff.at Sun Jan 23 07:01:36 2000 From: roland.bauer at fff.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Psion oder Palmpilot Message-ID: <388AFBAF.B3560437@fff.at> * * * vienna-pm-list * * * Hallo, Frage 1: Wer von Euch verwendet einen Psion oder Palmpilot oder einen ...? Oder hat einmal oder wird einmal ... ;-) Frage2: Wie gesagt, auf einem Psion MX Pro laeuft sogar Perl und vielleicht koennten wird da ein paar kleinere Prograemmchen machen ;-) Schoene Gruesse Roland -- roland.bauer@fff.at http://www.fff.at/fff/roland/ job: +43-1-36000/3949 ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Sun Jan 23 08:41:30 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Online-Tutorial: PickingUpPerl Message-ID: * * * vienna-pm-list * * * Online-Tutorial: PickingUpPerl http://www.ebb.org/PickingUpPerl/pickingUpPerl.html ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Sun Jan 23 09:19:21 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Common Perl Pitfalls Message-ID: * * * vienna-pm-list * * * http://www.crusoe.net/~jeffp/articles/tpj/1999-summer.html Dort wird zB darauf hingewiesen, dass das folgende eher nicht Perl-typisch ist: $size = @array; for ($i = 0; $i < $size; $i++){ $element = $array[$i]; # or even worse, @array[$i] # et cetera } Besser: for (@array){ ... } # or foreach (@array){ ... } # or for $element (@array){ ... } # or foreach $element (@array){ ... } Roland ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From hjp at wsr.ac.at Mon Jan 24 03:49:44 2000 From: hjp at wsr.ac.at (Peter J. Holzer) Date: Thu Aug 5 00:23:27 2004 Subject: Common Perl Pitfalls In-Reply-To: ; from Roland Bauer on Sun, Jan 23, 2000 at 04:19:21PM +0100 References: Message-ID: <20000124104944.C11826@wsr.ac.at> On 2000-01-23 16:19:21 +0100, Roland Bauer wrote: > Dort wird zB darauf hingewiesen, dass das folgende eher nicht > Perl-typisch ist: > > $size = @array; > for ($i = 0; $i < $size; $i++){ > $element = $array[$i]; # or even worse, @array[$i] > # et cetera > } > > Besser: > > for (@array){ ... } # or "Besser" h?ngt davon ab, was die Schleife tun soll. Manchmal braucht man den Index, und in dem Fall halte ich for ($i = 0; $i < scalar(@array); $i++) { do_something_with($i, $array[$i]); } f?r leserlicher als $i = 0; for $element (@array) { do_something_with($i, $element); $i++ } Au?erdem hat $i dann den richtigen Scope, wenn man my verwendet. hp PS: Wie man merkt, vermeide ich $_ wo immer m?glich. -- _ | Peter J. Holzer | Nobody should ever have to be |_|_) | Sysadmin WSR / Obmann LUGA | ashamed if they have a secret love | | | hjp@wsr.ac.at | for writing computer programs that __/ | http://wsrx.wsr.ac.at/~hjp/ | actually work. -- Donald E. Knuth -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 371 bytes Desc: not available Url : http://mail.pm.org/archives/vienna-pm/attachments/20000124/32f1ffd9/attachment.bin From juffi at ai.univie.ac.at Mon Jan 24 03:57:23 2000 From: juffi at ai.univie.ac.at (Johannes Fuernkranz) Date: Thu Aug 5 00:23:27 2004 Subject: Common Perl Pitfalls References: <20000124104944.C11826@wsr.ac.at> Message-ID: <388C2203.25EC88BF@ai.univie.ac.at> * * * vienna-pm-list * * * "Peter J. Holzer" wrote: > > PS: Wie man merkt, vermeide ich $_ wo immer m?glich. Warum? Juffi -- Johannes Fuernkranz Austrian Research Inst. for Artificial Intelligence fax:+43-1-5336112-77 Schottengasse 3, A-1010 Vienna, Austria, Europe phone:+43-1-5336112-19 http://www.ai.univie.ac.at/~juffi mailto:juffi@ai.univie.ac.at --------------- "Life is too short for Chess." -- Byron ---------------- ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From toni at soth.at Mon Jan 24 04:02:15 2000 From: toni at soth.at (Toni Andjelkovic) Date: Thu Aug 5 00:23:27 2004 Subject: Common Perl Pitfalls In-Reply-To: <388C2203.25EC88BF@ai.univie.ac.at> References: <20000124104944.C11826@wsr.ac.at> <388C2203.25EC88BF@ai.univie.ac.at> Message-ID: <20000124110215.D18231@catacombs.soth.at> * * * vienna-pm-list * * * Johannes Fuernkranz wrote on Mon, Jan 24 2000 (10:57:23 +0100): > > PS: Wie man merkt, vermeide ich $_ wo immer m?glich. > Warum? TMTOWTDI. cu, -- Toni Andjelkovic \ Time is the best teacher. toni@soth.at \ Unfortunately it kills all its students. ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From hjp at wsr.ac.at Mon Jan 24 04:33:37 2000 From: hjp at wsr.ac.at (Peter J. Holzer) Date: Thu Aug 5 00:23:27 2004 Subject: Common Perl Pitfalls In-Reply-To: <388C2203.25EC88BF@ai.univie.ac.at>; from Johannes Fuernkranz on Mon, Jan 24, 2000 at 10:57:23AM +0100 References: <20000124104944.C11826@wsr.ac.at> <388C2203.25EC88BF@ai.univie.ac.at> Message-ID: <20000124113337.D11826@wsr.ac.at> On 2000-01-24 10:57:23 +0100, Johannes Fuernkranz wrote: > "Peter J. Holzer" wrote: > > > > PS: Wie man merkt, vermeide ich $_ wo immer m?glich. > > Warum? Weil mir implizite Variablen prinzipiell unsympathisch sind. Weil es in fr?heren Perl-Versionen eine globale Variable war und man dadurch ziemlich untracebare Bugs produzieren konnte. Weil das zwar jetzt nicht mehr der Fall ist, aber andere $-Variablen nach wie vor global sind und ich mir nicht merken kann, welche das sind. Zusammenfassend: Weil ich meinen Code auch noch n?chste Woche verstehen will. hp -- _ | Peter J. Holzer | Nobody should ever have to be |_|_) | Sysadmin WSR / Obmann LUGA | ashamed if they have a secret love | | | hjp@wsr.ac.at | for writing computer programs that __/ | http://wsrx.wsr.ac.at/~hjp/ | actually work. -- Donald E. Knuth -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 371 bytes Desc: not available Url : http://mail.pm.org/archives/vienna-pm/attachments/20000124/52a4d940/attachment.bin From findeisen at nulleins.at Mon Jan 24 04:42:06 2000 From: findeisen at nulleins.at (=?iso-8859-1?Q?J=F6rg?= Findeisen) Date: Thu Aug 5 00:23:27 2004 Subject: Perl-Monger-Treffen im Jaenner References: <3881ADAE.9E43D3A3@fff.at> <38849516.56474AE1@nulleins.at> <20000118180624.A9975@wsr.ac.at> <3885784F.273EC402@nulleins.at> <3889823B.BAB3DF@fff.at> Message-ID: <388C2C7E.766BF32F@nulleins.at> * * * vienna-pm-list * * * ACHTUNG! cm1 war voll ... daher habe ich reserviert im cm2 !!!! 27.1.2000 19:00 unter "Findeisen" Stiftgasse 4 Ecke 7 Sterngasse / Stiftgasse ich habe f?r 6 leute reserviert ... lg j?rg -- findeisen@nulleins.at ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From seitz at bzs.tu-graz.ac.at Tue Jan 25 04:58:06 2000 From: seitz at bzs.tu-graz.ac.at (Peter Seitz) Date: Thu Aug 5 00:23:27 2004 Subject: Hash von Subroutine zurueckuebergeben Message-ID: * * * vienna-pm-list * * * Hallo Freunde, ich habe versucht meinen code etwas zu straffen, indem ich eine Subroutine geschrieben hae um meine "Datenbankdateien" einzulesen. Nur hab ich jetzt Schwierigkeiten und seltsame Verhaltensweisen und bin mir nicht sicher, ob ich das richtig implementiert habe. (Mein Code muss sowiso modularisiert werden und neu strukturiert, doch ich muss das Projekt momentan leider mit diesem Hack weiterbringen. Ich versuch ja immerhin schon mich mit dem strict mode anzufreunden ) Hier der zweimalige Aufruf meiner Subroutine und unten die Definition. Ich bin mir nicht sicher, ob ich nun tatsaechlich im Hauptprogramm die Daten in den hashes %strings_db und %strings_db_button abgespeichert habe, oder ob diese nur referenziert werden. # read strings database ... my %strings_db = (); $help = $directory_db . $strings_db_file; &read_database ($help, \%strings_db); # read button database ... my %strings_db_button = (); $help = $directory_db . $strings_db_button_file; &read_database ($help, \%strings_db_button); sub read_database { # read a database file and store it on a hash # variable parameters: # $dbfilename : Name of database file (including path) # %db_hash : Hash for storing database content # developed with strict mode my ($dbfilename, $db_hash) = @_; my %db_hash = (); open (STRINGS_DB, "$dbfilename") || die "cannot open file $dbfilename: $!\n"; my @strings = ; chomp (@strings); close (STRINGS_DB); foreach (@strings) { my @temp = (); @temp = split(/\x7f/, $_); # store strings.db file in a hash referenced by string. $strings_db{$temp[1]} = $temp[0]; } # foreach } ## sub read_database Ich waere fuer Euere Hinweise sehr dankbar. Gruss Peter Seitz Projektleiter Projekt Woerterbuch -- Interesse an einem freien deutschen Woerterbuch? Helfer gesucht! Projekt Woerterbuch: ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From juffi at ai.univie.ac.at Tue Jan 25 05:58:01 2000 From: juffi at ai.univie.ac.at (Johannes Fuernkranz) Date: Thu Aug 5 00:23:27 2004 Subject: Hash von Subroutine zurueckuebergeben References: Message-ID: <388D8FC9.558D3104@ai.univie.ac.at> * * * vienna-pm-list * * * Ich weisz nicht, ob ich Dir wirklich helfen kann. Ganz blick ich mich nicht durch. Aber auf den ersten Blick faellt mir auf, dasz Du zwar einen Hash %strings_db uebergibst, aber dann in der Subroutine die lokalen Parameter %db_hash und $db_hash (wofuer gehoert letzterer ueberhaupt?) nicht verwendest. Hab ich da was uebersehen? Juffi Peter Seitz wrote: > > * * * vienna-pm-list * * * > > Hallo Freunde, > > ich habe versucht meinen code etwas zu straffen, indem ich eine > Subroutine geschrieben hae um meine "Datenbankdateien" einzulesen. > > Nur hab ich jetzt Schwierigkeiten und seltsame Verhaltensweisen und > bin mir nicht sicher, ob ich das richtig implementiert habe. > (Mein Code muss sowiso modularisiert werden und neu strukturiert, > doch ich muss das Projekt momentan leider mit diesem Hack > weiterbringen. Ich versuch ja immerhin schon mich mit dem strict > mode anzufreunden ) > > Hier der zweimalige Aufruf meiner Subroutine und unten die Definition. > Ich bin mir nicht sicher, ob ich nun tatsaechlich im Hauptprogramm > die Daten in den hashes %strings_db und %strings_db_button > abgespeichert habe, oder ob diese nur referenziert werden. > > # read strings database ... > my %strings_db = (); > $help = $directory_db . $strings_db_file; > &read_database ($help, \%strings_db); > > # read button database ... > my %strings_db_button = (); > $help = $directory_db . $strings_db_button_file; > &read_database ($help, \%strings_db_button); > > sub read_database { > # read a database file and store it on a hash > # variable parameters: > # $dbfilename : Name of database file (including path) > # %db_hash : Hash for storing database content > # developed with strict mode > my ($dbfilename, $db_hash) = @_; > my %db_hash = (); > open (STRINGS_DB, "$dbfilename") || > die "cannot open file $dbfilename: $!\n"; > my @strings = ; > chomp (@strings); > close (STRINGS_DB); > > foreach (@strings) { > my @temp = (); > @temp = split(/\x7f/, $_); > # store strings.db file in a hash referenced by string. > $strings_db{$temp[1]} = $temp[0]; > } # foreach > } ## sub read_database > > Ich waere fuer Euere Hinweise sehr dankbar. > > Gruss > Peter Seitz > Projektleiter Projekt Woerterbuch > -- > Interesse an einem freien deutschen Woerterbuch? Helfer gesucht! > Projekt Woerterbuch: > ### > You are subscribed to vienna-pm-list > http://www.fff.at/fff/vienna.pm/ ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From juffi at ai.univie.ac.at Tue Jan 25 06:23:45 2000 From: juffi at ai.univie.ac.at (Johannes Fuernkranz) Date: Thu Aug 5 00:23:27 2004 Subject: Hash von Subroutine zurueckuebergeben References: Message-ID: <388D95D1.9731429A@ai.univie.ac.at> * * * vienna-pm-list * * * Bei genauerem Hinsehen glaube ich zu wissen was Du willst: das loeschen: > my %db_hash = (); das > $strings_db{$temp[1]} = $temp[0]; ersetzen durch $db_hash->{$temp[1]} = $temp[0]; Ich haette das allerdings durch ein anderes Interface geloest. Statt &read_database ($help, \%strings_db_button); Haette ich %strings_db_button = read_database($help); gemacht, und dann in der Subroutine einfach my %db_hash; [..] $db_hash{$temp[1]} = $temp[0]; [..] return %db_hash; Ob das gut ist oder nicht, haengt wohl davon ab, ob return eine Kopie des Array/Hash zurueckliefert oder (implizit) eine Referenz. Ich sehe an sich keinen Grund, warum es eine lokale my-Variable kopieren sollte, habe aber im Kamel keine genaue Angabe gefunden. Weisz wer, was genau beim Return eines Array passiert? Juffi ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Tue Jan 25 06:35:29 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Hash von Subroutine zurueckuebergeben Message-ID: * * * vienna-pm-list * * * Hallo Peter, ich glaub, da ueberlagern sich ein paar Dinge. Falls es nicht ganz klar ist, was ich meine - rueckfragen. Roland %% meine kommentare # read strings database ... my %strings_db = (); $help = $directory_db . $strings_db_file; &read_database ($help, \%strings_db); %% wenn %strings_db der rueckgabewert, waere folgendes besser: %% %strings_db = &read_database ($help); %% %% anmerkung: der hash muss am ende der subroutine mit return %strings_db; %% zurueckgegeben werden # read button database ... my %strings_db_button = (); $help = $directory_db . $strings_db_button_file; &read_database ($help, \%strings_db_button); sub read_database { # read a database file and store it on a hash # variable parameters: # $dbfilename : Name of database file (including path) # %db_hash : Hash for storing database content # developed with strict mode my ($dbfilename, $db_hash) = @_; my %db_hash = (); open (STRINGS_DB, "$dbfilename") || die "cannot open file $dbfilename: $!\n"; my @strings = ; chomp (@strings); close (STRINGS_DB); %% hier fehlt vermutlich: %% my %strings_db; foreach (@strings) { my @temp = (); @temp = split(/\x7f/, $_); %% hier besser %% my ($value, $key) = split(/\x7f/, $_); %% oder kuerzer (was peter nicht mag ;-) %% my ($meinvalue, $meinkey) = split/\x7f/; # store strings.db file in a hash referenced by string. $strings_db{$temp[1]} = $temp[0]; %% daher: %% $strings_db{$meinkey} = $meinvalue; %% das ist nicht gut, dass hier via $strings_db der wert %% an main zurueckgegeben wird (geht das ueberhaupt?) } # foreach %% ich glaube da fehlt %% return %strings_db; } ## sub read_database -- roland.bauer@mediaprint.at TEL: +43-1-36000/3949 ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Tue Jan 25 06:44:19 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Re: Hash von Subroutine zurueckuebergeben Message-ID: * * * vienna-pm-list * * * >Ich haette das allerdings durch ein anderes Interface geloest. Statt Ja, glaub ich auch (siehe voriges Mail) >Ob das gut ist oder nicht, haengt wohl davon ab, ob return eine Kopie des >Array/Hash zurueckliefert oder (implizit) eine Referenz. Hier ist glaub ich %hash besser, weil lesbarer. Willst Du aber mehrere Hashes zurueckliefern, MUSST Du Referenzen nehmen: return \%hash1, \%hash2; >Ich sehe an sich keinen >Grund, warum es eine lokale my-Variable kopieren sollte, habe aber im Kamel >keine genaue Angabe gefunden. Ich finde es lesbarer. Input kommt via @_ und mit my ($help) = @_; wird eine lokale kopie angelegt, Referenzen sind anfaelliger gegen fehlbedienung. Output geht ueber "return". > Weisz wer, was genau beim Return eines Array >passiert? Es wird glaub ich eine liste von skalaren zurueckgegeben. wobei die skalare auch referenzen sein duerfen. oder die inhalte von listen (eigentlich auch skalare), oder die inhalte von hashes(eigentlich auch skalare). FALLS Du wirklich mit Referenzen arbeiten willst, wird es etwas komplizierter. (Aber ich bin nicht gut im Tippen, daher nur auf Nachfrage) Roland -- roland.bauer@mediaprint.at TEL: +43-1-36000/3949 ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From juffi at ai.univie.ac.at Tue Jan 25 07:24:46 2000 From: juffi at ai.univie.ac.at (Johannes Fuernkranz) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Re: Hash von Subroutine zurueckuebergeben References: Message-ID: <388DA41E.85848CF8@ai.univie.ac.at> Roland Bauer wrote: > > Hier ist glaub ich %hash besser, weil lesbarer. Das sowieso. > Willst Du aber mehrere Hashes zurueckliefern, MUSST Du > Referenzen nehmen: Auch klar. > > Weisz wer, was genau beim Return eines Array > >passiert? > > Es wird glaub ich eine liste von skalaren zurueckgegeben. > wobei die skalare auch referenzen sein duerfen. > oder die > inhalte von listen (eigentlich auch skalare), oder die inhalte > von hashes(eigentlich auch skalare). Das wuerde heiszen, dasz ein 'return @array' fuer '@array == 1000' 100 mal solange dauert wie fuer '@array == 10'? Offenbar: (make_array ist eine Funktion die 1000 mal rand()*rand()*rand()*rand() berechnet, und die ersten $_[0] Werte in einem Array zurueckgibt, siehe attach): timethis(1000,'@x = make_array(1000)'); timethis(1000,'@x = make_array(10)'); timethis(1000,'$xref = make_array(1000)'); timethis(1000,'$xref = make_array(10)'); timethis(1000,'@x = @{ make_array(1000) }'); timethis(1000,'@x = @{ make_array(10) }'); Output: timethis 1000: 13 wallclock secs (13.68 usr + 0.00 sys = 13.68 CPU) timethis 1000: 11 wallclock secs (10.41 usr + 0.00 sys = 10.41 CPU) timethis 1000: 10 wallclock secs (10.33 usr + 0.00 sys = 10.33 CPU) timethis 1000: 11 wallclock secs (10.34 usr + 0.00 sys = 10.34 CPU) timethis 1000: 10 wallclock secs (10.29 usr + 0.00 sys = 10.29 CPU) timethis 1000: 10 wallclock secs (10.35 usr + 0.00 sys = 10.35 CPU) Man sehe: Das Zurueckgeben einer 1000-elementigen Liste dauert tatsaechlich signifikant laenger als das Zurueckgeben einer 10-elementigen Liste (30% Laufzeitsteigerung nur durch Aendern des Returns! Das ist bei den 3000 Multiplikationen und 4000 generated random numbers, die auf jeden Fall ausgefuehrt werden, schon ganz schoen viel!). Das Retournieren einer Referenz dauert immer gleich lang, auch wenn diese dann in eine Liste verwandelt wird (das ist eigentlich nicht weiter ueberraschend). Wieder was gelernt (sorry, falls Euch das eh schon klar war). Juffi -------------- next part -------------- A non-text attachment was scrubbed... Name: bench.pl Type: application/x-perl Size: 735 bytes Desc: not available Url : http://mail.pm.org/archives/vienna-pm/attachments/20000125/a1ad8225/bench.bin From marcel.grunauer at lovely.net Tue Jan 25 11:35:56 2000 From: marcel.grunauer at lovely.net (marcel.grunauer@lovely.net) Date: Thu Aug 5 00:23:27 2004 Subject: roughtime Message-ID: * * * vienna-pm-list * * * Hier ist was fuer die control freaks unter uns: Was kuemmert's mich, ob es 16:31 oder 16:32 ist? Es ist einfach halb fuenf. #!/usr/bin/perl -w use strict; sub roughtime { my (undef,$min,$hour) = localtime(shift()); my $r = ('', 'five past ', 'ten past ', 'quarter past ', 'twenty past ', 'twenty-five past ', 'half past ', 'twenty-five to ', 'twenty to ', 'quarter to ', 'ten to ', 'five to ', '')[($min + 2) / 5]; $r .= (qw/twelve one two three four five six seven eight nine ten eleven/)[($hour + abs($min-3) / 30) % 12]; $r .= " o'clock" if ($min + 2) % 60 < 5; $r; } print roughtime(time), "\n"; Marcel ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From juffi at ai.univie.ac.at Tue Jan 25 08:29:23 2000 From: juffi at ai.univie.ac.at (Johannes Fuernkranz) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Re: Hash von Subroutine zurueckuebergeben References: <388DA41E.85848CF8@ai.univie.ac.at> Message-ID: <388DB343.8FA92D31@ai.univie.ac.at> Sorry, aber der Benchmark-Code, den ich gerade gepostet habe, war schwachsinnig. > (make_array ist eine Funktion die 1000 mal rand()*rand()*rand()*rand() > berechnet, und die ersten $_[0] Werte in einem Array zurueckgibt, siehe attach): make_array_2 ist eine 2. Funktion, die das gleiche tut, wie make_array, aber eine Referenz auf den Array retourniert. timethis(1000,'@x = make_array(1000)'); timethis(1000,'@x = make_array(10)'); timethis(1000,'$xref = make_array_2(1000)'); timethis(1000,'$xref = make_array_2(10)'); timethis(1000,'@x = @{ make_array_2(1000) }'); timethis(1000,'@x = @{ make_array_2(10) }'); timethis 1000: 14 wallclock secs (13.70 usr + 0.00 sys = 13.70 CPU) timethis 1000: 11 wallclock secs (10.95 usr + 0.00 sys = 10.95 CPU) timethis 1000: 10 wallclock secs (10.38 usr + 0.00 sys = 10.38 CPU) timethis 1000: 10 wallclock secs ( 9.97 usr + 0.00 sys = 9.97 CPU) timethis 1000: 13 wallclock secs (12.36 usr + 0.00 sys = 12.36 CPU) timethis 1000: 10 wallclock secs ( 9.92 usr + 0.00 sys = 9.92 CPU) > Man sehe: > Das Zurueckgeben einer 1000-elementigen Liste dauert tatsaechlich signifikant > laenger als das Zurueckgeben einer 10-elementigen Liste (30% Laufzeitsteigerung > nur durch Aendern des Returns! Das ist bei den 3000 Multiplikationen und 4000 > generated random numbers, die auf jeden Fall ausgefuehrt werden, schon ganz > schoen viel!). > > Das Retournieren einer Referenz dauert immer gleich lang, auch wenn diese dann > in eine Liste verwandelt wird (das ist eigentlich nicht weiter ueberraschend). Das Umwandeln in eine Liste dauert nun doch ein wenig laenger, geht aber schneller als das Retournieren der Liste. Auch scheint das Retournieren einer Referenz auf einen kuerzeren Array schneller zu gehen als fuer einen laengere Referenz (3. und 4. Zeile). Seltsam (oder statistisch nicht signifikant?) Keine weiteren Bandwith- und Zeitverschwendungen, versprochen, aber das muszte ich noch korrigieren. Juffi -------------- next part -------------- A non-text attachment was scrubbed... Name: bench.pl Type: application/x-perl Size: 1171 bytes Desc: not available Url : http://mail.pm.org/archives/vienna-pm/attachments/20000125/117660a4/bench.bin From p.seitz at koehler-seitz.de Tue Jan 25 08:42:05 2000 From: p.seitz at koehler-seitz.de (Peter Seitz jun.) Date: Thu Aug 5 00:23:27 2004 Subject: Hash von Subroutine zurueckuebergeben Message-ID: <242F99D7591@koehler-seitz.de> * * * vienna-pm-list * * * On Tue, 25 Jan 2000 12:58:01 +0100 Johannes Fuernkranz wrote: > Ich weisz nicht, ob ich Dir wirklich helfen kann. Ganz blick ich > mich nicht durch. Aber auf den ersten Blick faellt mir auf, dasz Du > zwar einen Hash %strings_db uebergibst, aber dann in der Subroutine > die lokalen Parameter %db_hash und $db_hash (wofuer gehoert > letzterer ueberhaupt?) nicht verwendest. Hab ich da was uebersehen? Hmmm, das ist wohl noch vom letzten Ansatz uebrig. Ich wollte da dann den hash mittels (%db_hash) uebergeben, doch bei Hashes habe ich dann gelesen, dass das anders funktioniert. Das $db_hash sollte den Hash uebernehmen. Aber ich fuerchte, ich muss am Ende der subroutine noch ein return \%strings_db; schreiben. Oder muss ich vielmehr ein return ($dbfilename, \%strings_db); schreiben? > > Juffi > > Peter Seitz wrote: > > > > * * * vienna-pm-list * * * > > > > Hallo Freunde, > > > > ich habe versucht meinen code etwas zu straffen, indem ich eine > > Subroutine geschrieben hae um meine "Datenbankdateien" einzulesen. > > > > Nur hab ich jetzt Schwierigkeiten und seltsame Verhaltensweisen und > > bin mir nicht sicher, ob ich das richtig implementiert habe. > > (Mein Code muss sowiso modularisiert werden und neu strukturiert, > > doch ich muss das Projekt momentan leider mit diesem Hack > > weiterbringen. Ich versuch ja immerhin schon mich mit dem strict > > mode anzufreunden ) > > > > Hier der zweimalige Aufruf meiner Subroutine und unten die Definition. > > Ich bin mir nicht sicher, ob ich nun tatsaechlich im Hauptprogramm > > die Daten in den hashes %strings_db und %strings_db_button > > abgespeichert habe, oder ob diese nur referenziert werden. > > > > # read strings database ... > > my %strings_db = (); > > $help = $directory_db . $strings_db_file; > > &read_database ($help, \%strings_db); [...] > > sub read_database { > > # read a database file and store it on a hash > > # variable parameters: > > # $dbfilename : Name of database file (including path) > > # %db_hash : Hash for storing database content > > # developed with strict mode > > my ($dbfilename, $db_hash) = @_; > > my %db_hash = (); > > open (STRINGS_DB, "$dbfilename") || > > die "cannot open file $dbfilename: $!\n"; > > my @strings = ; > > chomp (@strings); > > close (STRINGS_DB); > > > > foreach (@strings) { > > my @temp = (); > > @temp = split(/\x7f/, $_); > > # store strings.db file in a hash referenced by string. > > $strings_db{$temp[1]} = $temp[0]; > > } # foreach > > } ## sub read_database [...] Gruss Peter Seitz Projektleiter Projekt Woerterbuch -- Interesse an einem freien deutschen Woerterbuch? Helfer gesucht! Projekt Woerterbuch: ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Tue Jan 25 09:09:43 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: Antw: Re: Hash von Subroutine zurueckuebergeben Message-ID: * * * vienna-pm-list * * * > return \%strings_db; >schreiben. Oder muss ich vielmehr ein > return ($dbfilename, \%strings_db); > schreiben? ohne referenzen: my $db; my %hash; ... %hash = &subr($db); sub subr { my %hashlocal; my ($dblocal) = @_; ... return %hashlocal; } MIT REFERENZEN: my $db; my %hash; ... &subr($db, \%hash); sub subr { my ($dblocal, $hashref) = @_; # syntaxbeispiel: my %h = %$hashref; ... # ohne return, da $hashref direkt veraendert wird } (Ich hab's nicht ausprobiert) Mit Referenzen wird die Syntax komplizierter. Und ich glaube, das lohnt nicht. Roland -- roland.bauer@mediaprint.at TEL: +43-1-36000/3949 ### You are subscribed to vienna-pm-list http://www.fff.at/fff/vienna.pm/ From roland.bauer at fff.at Tue Jan 25 17:35:59 2000 From: roland.bauer at fff.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: [Fwd: Mirror] Message-ID: <388E335E.58E50611@fff.at> Vielleicht hat jemand eine Tip ... -- roland.bauer@fff.at http://www.fff.at/fff/roland/ job: +43-1-36000/3949 -------------- next part -------------- An embedded message was scrubbed... From: Hermann Schinagl Subject: Mirror Date: Mon, 24 Jan 2000 18:58:20 +0100 Size: 1722 Url: http://mail.pm.org/archives/vienna-pm/attachments/20000126/6b3dbebb/attachment.eml From roland.bauer at fff.at Mon Jan 31 01:03:34 2000 From: roland.bauer at fff.at (Roland Bauer) Date: Thu Aug 5 00:23:27 2004 Subject: [vienna.pm] [Fwd: BOUNCE vienna-pm-list@pm.org: Admin request of type /^sub\b/i at line 4] Message-ID: <389533C6.AD428976@fff.at> Ist gebounced. -- roland.bauer@fff.at http://www.fff.at/fff/roland/ job: +43-1-36000/3949 -------------- next part -------------- An embedded message was scrubbed... From: owner-vienna-pm-list@pm.org Subject: BOUNCE vienna-pm-list@pm.org: Admin request of type /^sub\b/i at line 4 Date: Sun, 30 Jan 2000 15:51:45 -0500 (EST) Size: 2751 Url: http://mail.pm.org/archives/vienna-pm/attachments/20000131/eb83207e/attachment.eml From p.seitz at koehler-seitz.de Sun Jan 16 09:01:08 2000 From: p.seitz at koehler-seitz.de (Peter Seitz jun.) Date: Thu Aug 5 00:23:35 2004 Subject: [vienna.pm] Probleme bei Stringmanipulation Message-ID: <63661F7FE0@bzs.tu-graz.ac.at> * * * vienna-pm-list * * * Hallo Perl Gurus, ich beziehe mich mal etwas auf die Antwort von Marcel Grunauer vom 27. Dec 1999. Leider war meine Problembeschreibung nicht ganz genau, aber die Antwort hat mir doch etwas weitergeholfen. Problem: Ich habe eine Zeile aus einem RC-File fuer ein Windows- Programm (C++), in der Strings eigebettet sind. Im String werden Hochkommas entweder duch wiederholen "" oder durch maskieren \" eingebettet. Ich moechte mir nun den ersten auftretenden String ermitteln einschliesslich der eingebettetet "" oder \" Hochhkommas. Ich habe nun nachfolgendes kleines Testprogramm geschrieben. Das Extrahieren des Strings klappt nun ganz gut mit der Subroutine. (Kommentare zum Code erwuenscht!!! Ich glaube, dass ich das nicht optimal programmiert habe, kanns momentan aber noch nicht besser). Ich habe nun Probleme, wenn ich den ermittelten String in der Originalzeile durch eine andere Zeichenkette ersetzen will. Offensichtlich befinde ich mich da im Skalar-Modus und die Ersetzung wird nicht richtig durchgefuehrt. Bei meinem 2. Beispiel stuerzt das Programm ab mit folgender Fehlermeldung: /"BB:155 Speichern|+Editieren,457,45,100,1155,1158,50,100,6503"/: ?+*{} follows nothing in regexp at test3.pl line 11, chunk 2 Ich bin hier voellig ratlos. Kann mich jemand auf die richtige Spur lenken? Danke im voraus. #!/usr/bin/perl -w use strict; while (defined (my $zeile = )) { chomp $zeile; my $translate; my @values = &extract_string ($zeile,$translate); print "Val: zeile:'$values[0]'\n\nVal: translate:'$values[1]'\n"; my $doof = $values[0]; $translate = "\"" . $values[1] . "\""; $doof =~ s/$translate/STRING_NAME_01/; print "\"$doof\"\n"; print "\n"; my $targetlanguage = ; } sub extract_string { # extract the first quoted string from imput line and return it on # variable $match my ($inputline,$match) = @_; # find out the first appearance of ", "" and """ my @test = split (/"/, $inputline); my $possingle = length $test[0]; # first appearance of " @test = split (/""/, $inputline); my $posdouble = length $test[0]; # first appearance of "" @test = split (/"""/, $inputline); my $postriple = length $test[0]; # first appearance of """ $postriple = 0 if ($postriple == length $inputline); print "Single:$possingle - Double:$posdouble - Triple:$postriple\n"; my $testline = $inputline; my $countdoublequotes = () = ($testline =~ /("")/g); my $counttriplequotes = () = ($testline =~ /(""")/g); print "Doublequote:$countdoublequotes - Triplequotes:$counttriplequotes\n"; if ($possingle == $posdouble & $posdouble != $postriple) { $match = ""; # first string in line is empty print "empty sttring\n"; } else { print "wir tun was\n"; if ($possingle == $postriple) { # first appearance of """ ($testline = $testline) =~ s/"""/"\x7f\x7f\x7f/; } if ($counttriplequotes > 1) { ($testline = $testline) =~ s/"""/\x7f\x7f\x7f"/; } ($testline = $testline) =~ s/""/\x7f\x7f\x7f/g; ($match) = ($testline =~ /"([^"]+?)"/); $match =~ s/\x7f\x7f\x7f/""/g; } #print (defined $match && length $match ? $match : "+++"); ($inputline,$match); } # sub extract_string __DATA__ CONTROL "Mehrere Moeglichkeiten vorhanden. Eine Markieren und ""oeffnen"" anklicken.", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 6, 151, 18 CONTROL "BB:155 Speichern|+Editieren,457,45,100,1155,1158,50,100,6503", -2, "STATIC", SS_LEFT | WS_CHILD | NOT WS_VISIBLE | WS_BORDER | WS_GROUP, 147, 45, 33, 20 CONTROL "", -1, "STATIC", SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 6, 151, 18 CONTROL """Anhang"" information", 102, "BUTTON", BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE, 47, 33, 112, 10 CONTROL "Kommentiere (""> "") den Text", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 CONTROL "Kommentiere (""> "") den ""Text""", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 CONTROL "Kommentiere ("" """" "") den ""Text""", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 CONTROL """Kommentiere"" (""> "") den ""Text""", 107, "BUTTON", BS_AUTOCHECKBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 11, 105, 112, 10 With best compliments Peter Seitz -- Graz University of Technology, Austria - Fac. f. Civil Engineering mailto:seitz@bzs.tu-graz.ac.at - http://wwwbzs.tu-graz.ac.at/~seitz/ ### You are subscribed to vienna-pm-list as "Peter Seitz jun." http://www.fff.at/fff/vienna.pm/