From tom at tomsteiner.com Tue Feb 8 12:35:36 2000 From: tom at tomsteiner.com (Tom Stone) Date: Thu Aug 5 00:23:28 2004 Subject: [vienna.pm] Date: Tue, 8 Feb 2000 19:38:55 +0100 Message-ID: <001001bf7263$c1cc8c80$fc58b7d4@oemcomputer> Hallo liebe Perl Freunde! ich habe ein (wahrscheinlich triviales ) Problem das mich seit Tagen besch?ftigt. Folgender code liest die Datei news.wml (WAP Datei) und ersetzt eine Zeile des WAP Codes (Zeile 4) durch den Input des Users. Das Problem ist nun, da? das Programm zwar korrekt gespeichert wird, aber alle Zeilen um ein Zeichen nach rechts versetzt sind (bis auf 4 zeile). e ?fter man das script aufruft, desto mehr verschiebt es sich.. f?r jede Anregung bin ich dankbar, mfg tom p.s. sollte es zu trivial sein nochmals sorry... ####################### # enter data htm # ####################### # variables# $news = param("news"); $filename = "../news.wml"; #### open file ###### $news = param("news"); $line = "4"; # ENTER LINE HERE # open (NEWS, "$filename"); @input =; $input[$line] = "

$news<\/p>\n"; close NEWS; #write to file# open(NEWS, ">$filename"); print NEWS ("@input"); close NEWS; -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/archives/vienna-pm/attachments/20000208/797931f9/attachment.htm From toni at soth.at Tue Feb 8 15:18:48 2000 From: toni at soth.at (Toni Andjelkovic) Date: Thu Aug 5 00:23:28 2004 Subject: [vienna.pm] Date: Tue, 8 Feb 2000 19:38:55 +0100 In-Reply-To: <001001bf7263$c1cc8c80$fc58b7d4@oemcomputer> References: <001001bf7263$c1cc8c80$fc58b7d4@oemcomputer> Message-ID: <20000208221848.D23956@catacombs.soth.at> * * * vienna-pm-list * * * Tom Stone wrote on Tue, Feb 08 2000 (13:35:36 -0500): > print NEWS ("@input"); schreib das ganze ohne die hochkommata, dann passts. warum das so ist, weiss ich allerdings auch nicht ;) perldoc -f print war nicht erleuchtend, gurus, zu hilfe! :) cu, -- Toni Andjelkovic \ Real women use Linux. toni@soth.at \ ### You are subscribed to vienna-pm-list as Toni Andjelkovic http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Tue Feb 8 15:37:27 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:28 2004 Subject: Antw: Re: [vienna.pm] Date: Tue, 8 Feb 2000 19:38:55 +0100 Message-ID: * * * vienna-pm-list * * * >> print NEWS ("@input"); >schreib das ganze ohne die hochkommata, dann passts. stimmt! >warum das so ist, weiss ich allerdings auch nicht ;) Grund ist, dass die liste "interpoliert" wird, wenn sie in einem string (also das mit hochkomma steht). interpolieren heisst: zwischen den elementen wird der wert von $" (normalerweise space) eingefuegt. Siehe Camel-Book, Interpolating Array Values Roland -- roland.bauer@mediaprint.at TEL: +43-1-36000/3949 ### You are subscribed to vienna-pm-list as "Roland Bauer" http://www.fff.at/fff/vienna.pm/ From hjp at wsr.ac.at Wed Feb 9 03:36:36 2000 From: hjp at wsr.ac.at (Peter J. Holzer) Date: Thu Aug 5 00:23:28 2004 Subject: [vienna.pm] Date: Tue, 8 Feb 2000 19:38:55 +0100 In-Reply-To: <20000208221848.D23956@catacombs.soth.at>; from Toni Andjelkovic on Tue, Feb 08, 2000 at 10:18:48PM +0100 References: <001001bf7263$c1cc8c80$fc58b7d4@oemcomputer> <20000208221848.D23956@catacombs.soth.at> Message-ID: <20000209103635.E26265@wsr.ac.at> On 2000-02-08 22:18:48 +0100, Toni Andjelkovic wrote: > * * * vienna-pm-list * * * > > > Tom Stone wrote on Tue, Feb 08 2000 (13:35:36 -0500): > > print NEWS ("@input"); > > schreib das ganze ohne die hochkommata, dann passts. > warum das so ist, weiss ich allerdings auch nicht ;) Das ist eines der Do-What-I-Mean Features von perl. Wenn Du ein Array in Doublequotes einschlie?t, nimmt perl an, da? Du einen menschenlesbaren Output haben willst und f?gt Leerzeichen zwischen den Arrayelementen ein: my @a = ('a', 'bb', 'c'); print @a, "\n"; print "@a\n"; gibt abbc a bb c aus. Die zweite Zeile ist eindeutig lesbarer. 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/20000209/779e29d1/attachment.bin From p.guehring at enemy.org Wed Feb 9 11:07:36 2000 From: p.guehring at enemy.org (Philipp Gühring) Date: Thu Aug 5 00:23:28 2004 Subject: [vienna.pm] Date: Tue, 8 Feb 2000 19:38:55 +0100 In-Reply-To: <20000209103635.E26265@wsr.ac.at> References: <001001bf7263$c1cc8c80$fc58b7d4@oemcomputer> <20000208221848.D23956@catacombs.soth.at> <20000209103635.E26265@wsr.ac.at> Message-ID: <00020914103400.00344@linux1> * * * vienna-pm-list * * * >Das ist eines der Do-What-I-Mean Features von perl. Wenn Du ein Array in >Doublequotes einschließt, nimmt perl an, daß Du einen menschenlesbaren >Output haben willst und fügt Leerzeichen zwischen den Arrayelementen >ein: > > my @a = ('a', 'bb', 'c'); > > print @a, "\n"; > print "@a\n"; > >gibt > > abbc > a bb c > $"=", "; print "@a\n"; a, bb, c $" wird nur zwischen den Elementen eines Arrays ausgegeben. Standardwert von $"=" "; Schöne Grüße, -- ~ Philipp Gühring p.guehring@poboxes.com ~ http://www.futureware.at/ ICQ UIN: 6588261 ### You are subscribed to vienna-pm-list as Philipp Gühring http://www.fff.at/fff/vienna.pm/ From Roland.Bauer at mediaprint.at Sun Feb 13 06:21:09 2000 From: Roland.Bauer at mediaprint.at (Roland Bauer) Date: Thu Aug 5 00:23:28 2004 Subject: [vienna.pm] Graphviz (ziemlich gut) Message-ID: * * * vienna-pm-list * * * Graphviz (ziemlich gut) http://www.research.att.com/sw/tools/graphviz/ -- visualisiert graphen (zB directorybaeume, websites, projektplaene) eingabe sowohl interaktiv als auch ueber beschreibung in textform -- dokumentation im pdf-format im web verfuegbar -- laeuft auf unix, windows, ... -- roland.bauer@mediaprint.at TEL: +43-1-36000/3949 ### You are subscribed to vienna-pm-list as "Roland Bauer" http://www.fff.at/fff/vienna.pm/ From p.seitz at koehler-seitz.de Mon Feb 28 03:48:51 2000 From: p.seitz at koehler-seitz.de (Peter Seitz jun.) Date: Thu Aug 5 00:23:28 2004 Subject: [vienna.pm] Wirkungsbereich von "my" Message-ID: <594AF42727@koehler-seitz.de> * * * vienna-pm-list * * * Hallo Leute, ich steh immer noch ein klein wenig auf Kriegsfuss mit dem my statement. Ich habe in einer if-Schachtelung Variablendefinitionen mit my vorgenommen: if (-e $directory) { my %strings_db = (); %strings_db = &read_database ($filename); } Nun bin ich draufgestossen, dass die Werte auf dem Hash ausserhalb der if-Schachtelung nicht mehr vorhanden sind. Offensichtlich ist die Variable nur fuer die if-Abfrage definiert worden. Wie deklariere ich nun am besten solche Variablen? Ist es ueblich, diese am Programm anfang einfach mit my %strings_db = (); zu definieren? Ist es hier sinnvoll gleich fest definierte Startwerte (also z.B. leerer Hash) vorzugeben, oder ist das nicht noetig und man handlet sich damit mehr Schwierigkeiten ein als erwartet. Danke fuer Euere Tips. P.S.: Das Camel-Buch muss ich erst von der Post abholen :-) . Habs am Freitag bestellt und am Samstag war ich dummerweise auf der CeBit... Gruss Peter Seitz Projektleiter Projekt Woerterbuch -- Interesse an einem freien deutschen Woerterbuch? Helfer gesucht! Projekt Woerterbuch: ### You are subscribed to vienna-pm-list as "Peter Seitz jun." http://www.fff.at/fff/vienna.pm/ From roland.bauer at fff.at Mon Feb 28 15:20:11 2000 From: roland.bauer at fff.at (Roland Bauer) Date: Thu Aug 5 00:23:28 2004 Subject: [vienna.pm] Wirkungsbereich von "my" References: <594AF42727@koehler-seitz.de> Message-ID: <38BAE68B.7FE1C15D@fff.at> * * * vienna-pm-list * * * Hallo Peter, > Ich habe in einer if-Schachtelung Variablendefinitionen mit my > vorgenommen: > > if (-e $directory) { > my %strings_db = (); > %strings_db = &read_database ($filename); > } > > Nun bin ich draufgestossen, dass die Werte auf dem Hash ausserhalb > der if-Schachtelung nicht mehr vorhanden sind. Offensichtlich ist die > Variable nur fuer die if-Abfrage definiert worden. Stimmt. Gilt nur innerhalb des Blocks ... { my $xx } > Ist es ueblich, > diese am Programm anfang einfach mit > my %strings_db = (); > zu definieren? Nicht am Programmanfang, sondern (idealerweise) nur gerade in dem Block der alle umschliesst, in denen Du die Variable verwenden willst: #!/usr/bin/perl { { } { # BEGINN my $x; { $x; } { $x; } # ENDE } { #hier ist $x unbekannt } } Manchmal ist das aber der Programmanfang ;-) > Ist es hier sinnvoll gleich fest definierte Startwerte > (also z.B. leerer Hash) vorzugeben, oder ist das nicht noetig und man > handlet sich damit mehr Schwierigkeiten ein als erwartet. Ich mach das meistens nicht, aber bei my $xx; jammert er unter "use diagnostics;" bzw "-w", dass er nicht weiss, ob du "" oder 0 gemaint hast. > P.S.: Das Camel-Buch muss ich erst von der Post abholen :-) . Ohne Kamel ist's natuerlich hart ;-) > Habs am > Freitag bestellt und am Samstag war ich dummerweise auf der CeBit... Und, gab's was Interessantes? Roland ### You are subscribed to vienna-pm-list as Roland Bauer http://www.fff.at/fff/vienna.pm/ From roland.bauer at fff.at Mon Feb 28 15:27:20 2000 From: roland.bauer at fff.at (Roland Bauer) Date: Thu Aug 5 00:23:28 2004 Subject: [vienna.pm] Wirkungsbereich von "my" //for References: <594AF42727@koehler-seitz.de> Message-ID: <38BAE838.A5A32F72@fff.at> * * * vienna-pm-list * * * Nachsatz: bei "for" sieht das so aus: for my $xx (@list) { # hier ist $xx bekannt } ### You are subscribed to vienna-pm-list as Roland Bauer http://www.fff.at/fff/vienna.pm/