From ss5 at renormalist.net Wed Jun 2 13:52:35 2010 From: ss5 at renormalist.net (Steffen Schwigon) Date: Wed, 2 Jun 2010 22:52:35 +0200 (CEST) Subject: [Dresden-pm] Dresden Perl Mongers Treffen Juni 2010 Message-ID: <20100602205235.55F7C9AC146@h132974.serverkompetenz.net> "Psychotics are consistently inconsistent. The essence of sanity is to be inconsistently inconsistent." -- Larry Wall Hi! Am kommenden Donnerstag, jep, morgen, treffen sich wieder die Dresden Perl Mongers. Wenn Chemnitz.pm rumkommt, machen wir sicher bissel Emacs Lisp. In der Reihenfolge. Donnerstag, den 3. Juni 2010 20.30 Uhr Straßencafé (Straße E) Werner-Hartmann-Straße 4, 01099 Dresden http://www.strassencafe.de/ Wir bieten ernsthaften Support rund um Perl-Einstiegsthemen wie * Code-Reviews * erstes CPAN-Modul bauen * Updates zu Perl[56], Parrot, Deutscher Perlworkshop, YAPC und für Fortgeschrittene * Trost * Folklore * misc & etc Anfahrt, Termine, Themen immer hier: * http://dresden-pm.org/PM/TermineTreffen Jeder ist eingeladen. Grüße, Steffen -- Steffen Schwigon Dresden Perl Mongers From ss5 at renormalist.net Wed Jun 2 13:52:38 2010 From: ss5 at renormalist.net (Steffen Schwigon) Date: Wed, 2 Jun 2010 22:52:38 +0200 (CEST) Subject: [Dresden-pm] Dresden Perl Mongers Treffen Juni 2010 Message-ID: <20100602205238.90BF79AD595@h132974.serverkompetenz.net> "Psychotics are consistently inconsistent. The essence of sanity is to be inconsistently inconsistent." -- Larry Wall Hi! Am kommenden Donnerstag, jep, morgen, treffen sich wieder die Dresden Perl Mongers. Wenn Chemnitz.pm rumkommt, machen wir sicher bissel Emacs Lisp. In der Reihenfolge. Donnerstag, den 3. Juni 2010 20.30 Uhr Straßencafé (Straße E) Werner-Hartmann-Straße 4, 01099 Dresden http://www.strassencafe.de/ Wir bieten ernsthaften Support rund um Perl-Einstiegsthemen wie * Code-Reviews * erstes CPAN-Modul bauen * Updates zu Perl[56], Parrot, Deutscher Perlworkshop, YAPC und für Fortgeschrittene * Trost * Folklore * misc & etc Anfahrt, Termine, Themen immer hier: * http://dresden-pm.org/PM/TermineTreffen Jeder ist eingeladen. Grüße, Steffen -- Steffen Schwigon Dresden Perl Mongers From hd.kirmse at gmx.de Wed Jun 2 13:52:44 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Wed, 02 Jun 2010 22:52:44 +0200 Subject: [Dresden-pm] Frage zu UI::Dialog Message-ID: <4C06C49C.7070609@gmx.de> Hallo in die Runde, euer Zaungast aus Thüringen muss euch wiedermal mit einer vielleicht exotischen Frage belästigen. Es läuft eine Installationsroutine, bei der mehrere Fragen beantwortet werden und die Menüs dazu funktionieren auch wie erwartet. Hinterher möchte ich eine Messagebox bringen, in der die bisherigen Eingaben aufgelistet werden. Und genau das bringe ich nicht hin. Bei mir kommt immer Fließtext und ich sehe nicht die Spur eines Ansatzes. An folgendem Mini-Programm möchte ich mein Problem verdeutlichen: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #!/usr/bin/perl use warnings; use strict; use UI::Dialog::Backend::Whiptail; my $dialog = new UI::Dialog::Backend::Whiptail( backtitle => $0, title => 'delixs-Installation' ); my $host = 'alix'; my $ip = '10.100.0.1'; my $domain = 'delixs-schule.de'; my $text1 =<< "ENDE"; Sie haben folgenden Eingaben gemacht: Name des Rechners: $host IP des Rechners: $ip Domain: $domain ENDE $dialog->msgbox( title => 'Ihre Eingaben:', text => $text1 ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Will sagen, die letzte Zeile liefert mir einen grottenhäßlichen Fließtext, ich hätte es aber gern zumindest annähernd so wie es in der HERE-Variablen formatiert ist, zumindest die Zeilen. In der Dokumentation bin ich trotz intensiver Suche nicht fündig geworden. Aber vielleicht liegt das auch an meinen mangelhaften Englischkenntnissen. Wäre für Hinweise / Tipps sehr dankbar. Mit freundlichen Grüßen Hans-Dietrich From richard.moehn at gmx.de Thu Jun 3 03:48:35 2010 From: richard.moehn at gmx.de (Richard =?iso-8859-1?Q?M=F6hn?=) Date: Thu, 3 Jun 2010 12:48:35 +0200 Subject: [Dresden-pm] Frage zu UI::Dialog In-Reply-To: <4C06C49C.7070609@gmx.de> References: <4C06C49C.7070609@gmx.de> Message-ID: <20100603104835.GA2207@clarence.org> On Wed, Jun 02, 2010 at 10:52:44PM +0200, Hans-Dietrich Kirmse wrote: > Es läuft eine Installationsroutine, bei der mehrere Fragen beantwortet > werden und die Menüs dazu funktionieren auch wie erwartet. Hinterher > möchte ich eine Messagebox bringen, in der die bisherigen Eingaben > aufgelistet werden. Und genau das bringe ich nicht hin. Bei mir kommt > immer Fließtext und ich sehe nicht die Spur eines Ansatzes. > > > An folgendem Mini-Programm möchte ich mein Problem verdeutlichen: > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > #!/usr/bin/perl > use warnings; > use strict; > > use UI::Dialog::Backend::Whiptail; > > my $dialog = new UI::Dialog::Backend::Whiptail( > backtitle => $0, > title => 'delixs-Installation' ); > > my $host = 'alix'; > my $ip = '10.100.0.1'; > my $domain = 'delixs-schule.de'; > > > my $text1 =<< "ENDE"; > Sie haben folgenden Eingaben gemacht: > Name des Rechners: $host > IP des Rechners: $ip > Domain: $domain > ENDE > > $dialog->msgbox( title => 'Ihre Eingaben:', text => $text1 ); > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Will sagen, die letzte Zeile liefert mir einen grottenhäßlichen > Fließtext, ich hätte es aber gern zumindest annähernd so wie es in der > HERE-Variablen formatiert ist, zumindest die Zeilen. > > In der Dokumentation bin ich trotz intensiver Suche nicht fündig > geworden. Aber vielleicht liegt das auch an meinen mangelhaften > Englischkenntnissen. Ich hatte das Problem auch mal. Ich weiß zwar nicht mehr, warum, aber du musst die Newlines als doppelt escapte Escape-Sequenzen (oder so ähnlich) eingeben. Also in etwa so: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #!/usr/bin/perl use warnings; use strict; use UI::Dialog::Backend::Whiptail; my $dialog = new UI::Dialog::Backend::Whiptail( backtitle => $0, title => 'delixs-Installation' ); my $host = 'alix'; my $ip = '10.100.0.1'; my $domain = 'delixs-schule.de'; my $text1 =<< "ENDE"; Sie haben folgenden Eingaben gemacht: Name des Rechners: $host \\n IP des Rechners: $ip \\n Domain: $domain \\n ENDE $dialog->msgbox( title => 'Ihre Eingaben:', text => $text1 ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- Public Key-ID: 4385C7FB Fingerprint: D74B F0D6 52BD C802 F5E2 B5BF 78AB 5563 4385 C7FB -------------- nächster Teil -------------- Ein Dateianhang mit Binärdaten wurde abgetrennt... Dateiname : nicht verfügbar Dateityp : application/pgp-signature Dateigröße : 198 bytes Beschreibung: Digital signature URL : From hd.kirmse at gmx.de Thu Jun 3 04:52:47 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Thu, 03 Jun 2010 13:52:47 +0200 Subject: [Dresden-pm] Frage zu UI::Dialog In-Reply-To: <20100603104835.GA2207@clarence.org> References: <4C06C49C.7070609@gmx.de> <20100603104835.GA2207@clarence.org> Message-ID: <4C07978F.4000108@gmx.de> Hallo Richard, Richard Möhn schrieb: > Ich hatte das Problem auch mal. Ich weiß zwar nicht mehr, warum, aber > du musst die Newlines als doppelt escapte Escape-Sequenzen (oder so > ähnlich) eingeben. Also in etwa so: > my $text1 =<< "ENDE"; > Sie haben folgenden Eingaben gemacht: > Name des Rechners: $host \\n > IP des Rechners: $ip \\n > Domain: $domain \\n > ENDE > > $dialog->msgbox( title => 'Ihre Eingaben:', text => $text1 ); ja genau das war's. Herzlichen Dank für die schnelle Hilfe. Mit freundlichen Grüßen Hans-Dietrich From Joerg.Westphal at gmx.de Thu Jun 3 08:14:00 2010 From: Joerg.Westphal at gmx.de (Joerg Westphal) Date: Thu, 03 Jun 2010 17:14:00 +0200 Subject: [Dresden-pm] Dresden Perl Mongers Treffen Juni 2010 In-Reply-To: <20100602205235.55F7C9AC146@h132974.serverkompetenz.net> References: <20100602205235.55F7C9AC146@h132974.serverkompetenz.net> Message-ID: <20100603151400.211900@gmx.net> Hallo Mongers, muss leider absagen. Fahre am Samstag in Urlaub, Schreibtisch voll, Postfach voll, Anrufbeantworter voll, Schnauze... Bis Juli. ;-) Gruß Jörg From support at robhost.de Fri Jun 4 01:56:55 2010 From: support at robhost.de (Martin Probst (RobHost Support)) Date: Fri, 4 Jun 2010 10:56:55 +0200 Subject: [Dresden-pm] Perl, utf8 und Umlaute Message-ID: <59748BD8-8B09-429D-83C3-D50A4B7B3A5C@robhost.de> Hi Mongers, ich habe ein leidiges Problem mit doppelt (manchmal dreifach) kodierten utf8 Umlauten in Perl. Ich habe ein paar Daten und möchte daraus eine XML-Datei machen. Leider nörgelt der abnehmende Parser bei diesen doppelt kodierten Zeichen rum und möchte diese nicht verarbeiten. Da der aber auch nur utf8 versteht und Perl in Verbindung mit utf8, Umlauten und regexen so gar nicht klar kommt, habe ich es auf diese Art und Weise gelöst: ... no utf8; $text =~ s#[^a-zA-Z0-9ÄÖÜäüöß"\$_\-\.\+%&]# #g; use utf8; ... Im Endeffekt sollen alle Zeichen die nicht in der Regex ausgeschlossen werden, durch ein Leerzeichen ersetzt werden. Leider klappt das mit den doppelt kodierten Zeichen nicht. Habt Ihr eine Idee wie man diese zuverlässig verbannen kann? An den Ursprungsdaten lässt sich leider keine Veränderung vornehmen. MfG Maddin From martin at suedvorstadt.de Fri Jun 4 10:06:18 2010 From: martin at suedvorstadt.de (martin) Date: Fri, 04 Jun 2010 19:06:18 +0200 Subject: [Dresden-pm] Bugfix in Perl SMTP Server Message-ID: <4C09328A.3030308@suedvorstadt.de> Hallo Perl Mongers, ich habe einen in Perl geschriebenen SMTP Server welcher einen Bug bei der Annahme von E-Mails hat. Das ganze war irgendwann eine Eigenentwicklung von Irgendwem. Genau gesagt besteht das ganze aus zwei Skripten. Eine smtpserver.pl, welche sich um die Annahme von E-Mails kümmert und diese in einem Ordner ablegt, sowie eine smtprelay.pl, welche die abgelegten E-Mails versendet. Leider hat die smtpserver.pl einen Bug bei der Annahme von E-Mails des poMMo Newsletter-Skriptes [1]. Die smtpserver.pl selbst besteht nur aus 95 Zeilen. Mit meinen bescheidenen Perl Kenntnissen konnte ich keine Zeile entdecken, welche sich um das parsen der angenommenen Daten bzw. E-Mails kümmert. Ich vermute das dies in einer der geladenen Bibliotheken passiert: use Net::SMTP::Server; use Net::SMTP::Server::Client; use Net::SMTP::Server::Relay; Ich vermute außerdem das die Net::SMTP::Server Bibliothek modiziert wurde und nicht mehr Standard ist. Der eigentliche Grund für die Eigenentwicklung ist die smtprelay.pl. Der darin stattfindende Voodoo ist aber weder verständlich, noch scheint er im Zusammenhang mit dem Bug zu stehen. Ich würde mich freuen wenn sich Jemand die smtpserver.pl vertrauensvoll anschauen und mir einen Preis für das Beheben des Bugs sagen kann. Da ich das Skript nicht an die komplette Mailingliste schicken möchte würde ich mich über eine kurze E-Mail an martin at suedvorstadt.de freuen. Im Idealfall gleich mit einer kurzen Info ob eine Rechnung mit ausgewiesener Mwst möglich wäre. Vielen Dank und einen schönen Start ins Wochenende, martin [1] http://pommo.org/Main_Page From ss5 at renormalist.net Fri Jun 4 11:43:16 2010 From: ss5 at renormalist.net (Steffen Schwigon) Date: Fri, 04 Jun 2010 20:43:16 +0200 Subject: [Dresden-pm] Perl, utf8 und Umlaute In-Reply-To: <59748BD8-8B09-429D-83C3-D50A4B7B3A5C@robhost.de> (Martin Probst's message of "Fri\, 4 Jun 2010 10\:56\:55 +0200") References: <59748BD8-8B09-429D-83C3-D50A4B7B3A5C@robhost.de> Message-ID: <871vcm63ln.fsf@renormalist.net> "Martin Probst (RobHost Support)" writes: > Hi Mongers, > > ich habe ein leidiges Problem mit doppelt (manchmal dreifach) > kodierten utf8 Umlauten in Perl. Ich habe ein paar Daten und möchte > daraus eine XML-Datei machen. Leider nörgelt der abnehmende Parser > bei diesen doppelt kodierten Zeichen rum und möchte diese nicht > verarbeiten. Da der aber auch nur utf8 versteht Schreib mal bitte noch paar mehr Details, was genau meinst Du mit mehrfach kodierten Daten. Du kriegst für einen Umlaut-ü z.B. solche Doppelzeichen Ã?, meinst Du sowas? Und was meint dreifach? Werden aus einem Zeichen 3 Zeichen oder verdoppelt es sich 3x, aus einem werden also 8 Zeichen? Am besten, Du hast mal ein paar Bytes in einer Datei und attachst die hier. Weiterhin, wie versuchst Du das XML zu erzeugen? Selber oder mit einer Lib? Und welcher Parser? > und Perl in Verbindung mit utf8, Umlauten und regexen so gar nicht > klar kommt, Das ist definitiv eine Falschaussage, es sei denn, Du redest von Uralt-Perls. Welche Perl-Version hast Du denn? Wenn Du ein Minimalbeispiel zusammengebaut bekommst, bräuchten wir auch nicht rumraten, sondern könnten es direkt lösen. Probier mal, das zu liefern. Alles in ein tar.gz verpacken, damit nichts beim Mailen verfälscht wird. > habe ich es auf diese Art und Weise gelöst: > > ... > no utf8; > $text =~ s#[^a-zA-Z0-9ÄÖÜäüöß"\$_\-\.\+%&]# #g; > use utf8; > ... Du möchtest die Zeichen komplett diskriminieren? Das ist aber inkonsequent. :-) > Im Endeffekt sollen alle Zeichen die nicht in der Regex > ausgeschlossen werden, durch ein Leerzeichen ersetzt werden. Leider > klappt das mit den doppelt kodierten Zeichen nicht. Habt Ihr eine > Idee wie man diese zuverlässig verbannen kann? Leicht: einfach *alle* Zeichen durch Spaces ersetzen. :-) $text =~ s/./ /g; > An den Ursprungsdaten lässt sich leider keine Veränderung vornehmen. Das ist ok und stellt keine Bedrohung dar. Also flugs konkreter werden. Und uns dafür bissel Zeit gönnen, ich kann z.B. nicht rund um die Uhr Mail lesen. Kind regards, Steffen -- Steffen Schwigon Dresden Perl Mongers From ss5 at renormalist.net Fri Jun 4 11:53:17 2010 From: ss5 at renormalist.net (Steffen Schwigon) Date: Fri, 04 Jun 2010 20:53:17 +0200 Subject: [Dresden-pm] Bugfix in Perl SMTP Server In-Reply-To: <4C09328A.3030308@suedvorstadt.de> (martin@suedvorstadt.de's message of "Fri\, 04 Jun 2010 19\:06\:18 +0200") References: <4C09328A.3030308@suedvorstadt.de> Message-ID: <87sk524oki.fsf@renormalist.net> martin writes: > in Perl geschriebenen SMTP Server, > Bug bei der Annahme von E-Mails > smtpserver.pl > smtprelay.pl > smtpserver.pl Bug bei der Annahme von E-Mails des poMMo > Newsletter-Skriptes Beschreib mal das Problem noch näher, geht was funktional nicht, oder reden wir auch von Encoding-Problemen? Was anderes? Möchtest Du den Code nicht public machen oder willst Du nur die Mailingliste schonen? Falls letzteres, dann paste den Code in http://pastie.org/ und sende die URL hierher. Kind regards, Steffen -- Steffen Schwigon Dresden Perl Mongers From support at robhost.de Fri Jun 4 12:11:46 2010 From: support at robhost.de (Martin Probst (RobHost Support)) Date: Fri, 4 Jun 2010 21:11:46 +0200 Subject: [Dresden-pm] Perl, utf8 und Umlaute In-Reply-To: <871vcm63ln.fsf@renormalist.net> References: <59748BD8-8B09-429D-83C3-D50A4B7B3A5C@robhost.de> <871vcm63ln.fsf@renormalist.net> Message-ID: <7C71BCA8-995C-46CE-9E25-E24A190ACB8D@robhost.de> Hi Steffen, um es vorweg zu nehmen, mein Problem hat sich größtenteils schon erledigt. Ich hole mir die Daten jetzt als Latin1 und kodiere diese erst bei der Ausgabe zu UTF-8. Das behebt die meisten Probleme die ich habe. > "Martin Probst (RobHost Support)" writes: >> Hi Mongers, >> >> ich habe ein leidiges Problem mit doppelt (manchmal dreifach) >> kodierten utf8 Umlauten in Perl. Ich habe ein paar Daten und möchte >> daraus eine XML-Datei machen. Leider nörgelt der abnehmende Parser >> bei diesen doppelt kodierten Zeichen rum und möchte diese nicht >> verarbeiten. Da der aber auch nur utf8 versteht > > Schreib mal bitte noch paar mehr Details, was genau meinst Du mit > mehrfach kodierten Daten. Du kriegst für einen Umlaut-ü z.B. solche > Doppelzeichen Ã?, meinst Du sowas? Genau sowas meinte ich. > > Und was meint dreifach? Werden aus einem Zeichen 3 Zeichen oder > verdoppelt es sich 3x, aus einem werden also 8 Zeichen? > Eben ein 3 Fach kodiertes ü in einer anderen Kodierung z.b., also aus einem ü werden 4 Ã?ñ. > Am besten, Du hast mal ein paar Bytes in einer Datei und attachst die > hier. > > Weiterhin, wie versuchst Du das XML zu erzeugen? Selber oder mit einer > Lib? Und welcher Parser? Aus Geschwindigkeitsgründen selbst, vorher aber mit XML::Simple und XML::Writer getestet. Mit Parser meinte ich auch eher das entgegen nehmende Programme welches scheinbar mit libexpat arbeitet. > > >> und Perl in Verbindung mit utf8, Umlauten und regexen so gar nicht >> klar kommt, > > Das ist definitiv eine Falschaussage, es sei denn, Du redest von > Uralt-Perls. Welche Perl-Version hast Du denn? Ist schon die 5.10.0. Allerdings funktioniert unten erwähntes Konstrukt nicht so recht mit dem use utf8; Pragma unter Debian Lenny. > > Wenn Du ein Minimalbeispiel zusammengebaut bekommst, bräuchten wir > auch nicht rumraten, sondern könnten es direkt lösen. Probier mal, das > zu liefern. > > Alles in ein tar.gz verpacken, damit nichts beim Mailen verfälscht > wird. > > >> habe ich es auf diese Art und Weise gelöst: >> >> ... >> no utf8; >> $text =~ s#[^a-zA-Z0-9ÄÖÜäüöß"\$_\-\.\+%&]# #g; >> use utf8; >> ... > > Du möchtest die Zeichen komplett diskriminieren? Das ist aber > inkonsequent. :-) Ja leider ;-), Würde aber den entgegengesetzten Fall, alle Zeichen die man nicht haben möchte vereinfachen, denn im Moment kenne wir nur erstmal die Zeichen die wir haben wollen :-) > > >> Im Endeffekt sollen alle Zeichen die nicht in der Regex >> ausgeschlossen werden, durch ein Leerzeichen ersetzt werden. Leider >> klappt das mit den doppelt kodierten Zeichen nicht. Habt Ihr eine >> Idee wie man diese zuverlässig verbannen kann? > > Leicht: einfach *alle* Zeichen durch Spaces ersetzen. :-) > > $text =~ s/./ /g; Ja die Idee hat ich auch schon, den daraus resultierenden Text kann man allerdings schwerer lesen finde ich :D > > >> An den Ursprungsdaten lässt sich leider keine Veränderung vornehmen. > > Das ist ok und stellt keine Bedrohung dar. > > Also flugs konkreter werden. Und uns dafür bissel Zeit gönnen, ich > kann z.B. nicht rund um die Uhr Mail lesen. > Danke Maddin > > Kind regards, > Steffen > -- > Steffen Schwigon > Dresden Perl Mongers > _______________________________________________ > Dresden-pm mailing list > Dresden-pm at pm.org > http://mail.pm.org/mailman/listinfo/dresden-pm From ss5 at renormalist.net Fri Jun 4 13:20:40 2010 From: ss5 at renormalist.net (Steffen Schwigon) Date: Fri, 04 Jun 2010 22:20:40 +0200 Subject: [Dresden-pm] Perl, utf8 und Umlaute In-Reply-To: <7C71BCA8-995C-46CE-9E25-E24A190ACB8D@robhost.de> (Martin Probst's message of "Fri\, 4 Jun 2010 21\:11\:46 +0200") References: <59748BD8-8B09-429D-83C3-D50A4B7B3A5C@robhost.de> <871vcm63ln.fsf@renormalist.net> <7C71BCA8-995C-46CE-9E25-E24A190ACB8D@robhost.de> Message-ID: <87typi35yf.fsf@renormalist.net> "Martin Probst (RobHost Support)" writes: > Hi Steffen, > > um es vorweg zu nehmen, mein Problem hat sich größtenteils schon > erledigt. Ich hole mir die Daten jetzt als Latin1 und kodiere diese > erst bei der Ausgabe zu UTF-8. Das behebt die meisten Probleme die > ich habe. Dann interessiert mich aber trotzdem noch der Rest. Ich hab in einem Projekt schon manuell rumtricksen müssen, wenn manche Frameworks ihre eigenen Heuristiken haben und wasserbettmäßig immer genau das ausgleichen wollen, was man an den Daten grad gefixt hat. Damals war das HTML::Mason oder eine Dependency davon. Und ganz dahinter machten auch die Webserver und sogar die Browser noch utf8-Upgrades, das war verwirrend, weil der Code schon ok war, nur die HTML-Direktiven ungenügend. Bis man das aber merkt, hat man schon zig mal hinten alles zurückgebaut? Deine ?3-fach?-Probleme klingen danach, die sind also möglicherweise gar nicht in den Daten selbst, sondern nur in den Tools mit denen Du die anzeigst, Deine Shell, Dein Editor, der Browser. Dann helfen Byte Order Marks oder HTML-Direktiven. Damals habe ich AFAIR auch mit den expliziten Utility-Funktionen aus utf8::* rumgemacht: utf8::upgrade,downgrade,encode,decode,is_utf8 ? siehe ?perldoc utf8?. Was damals am besten funktioniert hat, war, die latin-Encodings ganz frühzeitig, dort in einer Datanbankschicht, loszuwerden, alles konsequent nach utf8 zu bringen und das ggf. mit obigen Funktionen an den Daten selbst markieren, wenn man selber besser weiß, was sie in Wirklichkeit schon sind. Kind regards, Steffen -- Steffen Schwigon Dresden Perl Mongers From support at robhost.de Fri Jun 4 12:11:46 2010 From: support at robhost.de (Martin Probst (RobHost Support)) Date: Fri, 4 Jun 2010 21:11:46 +0200 Subject: [Dresden-pm] Perl, utf8 und Umlaute In-Reply-To: <871vcm63ln.fsf@renormalist.net> References: <59748BD8-8B09-429D-83C3-D50A4B7B3A5C@robhost.de> <871vcm63ln.fsf@renormalist.net> Message-ID: <7C71BCA8-995C-46CE-9E25-E24A190ACB8D@robhost.de> Hi Steffen, um es vorweg zu nehmen, mein Problem hat sich größtenteils schon erledigt. Ich hole mir die Daten jetzt als Latin1 und kodiere diese erst bei der Ausgabe zu UTF-8. Das behebt die meisten Probleme die ich habe. > "Martin Probst (RobHost Support)" writes: >> Hi Mongers, >> >> ich habe ein leidiges Problem mit doppelt (manchmal dreifach) >> kodierten utf8 Umlauten in Perl. Ich habe ein paar Daten und möchte >> daraus eine XML-Datei machen. Leider nörgelt der abnehmende Parser >> bei diesen doppelt kodierten Zeichen rum und möchte diese nicht >> verarbeiten. Da der aber auch nur utf8 versteht > > Schreib mal bitte noch paar mehr Details, was genau meinst Du mit > mehrfach kodierten Daten. Du kriegst für einen Umlaut-ü z.B. solche > Doppelzeichen Ã?, meinst Du sowas? Genau sowas meinte ich. > > Und was meint dreifach? Werden aus einem Zeichen 3 Zeichen oder > verdoppelt es sich 3x, aus einem werden also 8 Zeichen? > Eben ein 3 Fach kodiertes ü in einer anderen Kodierung z.b., also aus einem ü werden 4 Ã?ñ. > Am besten, Du hast mal ein paar Bytes in einer Datei und attachst die > hier. > > Weiterhin, wie versuchst Du das XML zu erzeugen? Selber oder mit einer > Lib? Und welcher Parser? Aus Geschwindigkeitsgründen selbst, vorher aber mit XML::Simple und XML::Writer getestet. Mit Parser meinte ich auch eher das entgegen nehmende Programme welches scheinbar mit libexpat arbeitet. > > >> und Perl in Verbindung mit utf8, Umlauten und regexen so gar nicht >> klar kommt, > > Das ist definitiv eine Falschaussage, es sei denn, Du redest von > Uralt-Perls. Welche Perl-Version hast Du denn? Ist schon die 5.10.0. Allerdings funktioniert unten erwähntes Konstrukt nicht so recht mit dem use utf8; Pragma unter Debian Lenny. > > Wenn Du ein Minimalbeispiel zusammengebaut bekommst, bräuchten wir > auch nicht rumraten, sondern könnten es direkt lösen. Probier mal, das > zu liefern. > > Alles in ein tar.gz verpacken, damit nichts beim Mailen verfälscht > wird. > > >> habe ich es auf diese Art und Weise gelöst: >> >> ... >> no utf8; >> $text =~ s#[^a-zA-Z0-9ÄÖÜäüöß"\$_\-\.\+%&]# #g; >> use utf8; >> ... > > Du möchtest die Zeichen komplett diskriminieren? Das ist aber > inkonsequent. :-) Ja leider ;-), Würde aber den entgegengesetzten Fall, alle Zeichen die man nicht haben möchte vereinfachen, denn im Moment kenne wir nur erstmal die Zeichen die wir haben wollen :-) > > >> Im Endeffekt sollen alle Zeichen die nicht in der Regex >> ausgeschlossen werden, durch ein Leerzeichen ersetzt werden. Leider >> klappt das mit den doppelt kodierten Zeichen nicht. Habt Ihr eine >> Idee wie man diese zuverlässig verbannen kann? > > Leicht: einfach *alle* Zeichen durch Spaces ersetzen. :-) > > $text =~ s/./ /g; Ja die Idee hat ich auch schon, den daraus resultierenden Text kann man allerdings schwerer lesen finde ich :D > > >> An den Ursprungsdaten lässt sich leider keine Veränderung vornehmen. > > Das ist ok und stellt keine Bedrohung dar. > > Also flugs konkreter werden. Und uns dafür bissel Zeit gönnen, ich > kann z.B. nicht rund um die Uhr Mail lesen. > Danke Maddin > > Kind regards, > Steffen > -- > Steffen Schwigon > Dresden Perl Mongers > _______________________________________________ > Dresden-pm mailing list > Dresden-pm at pm.org > http://mail.pm.org/mailman/listinfo/dresden-pm From hd.kirmse at gmx.de Sun Jun 6 12:13:27 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Sun, 06 Jun 2010 21:13:27 +0200 Subject: [Dresden-pm] =?iso-8859-15?q?Verst=E4ndnisfrage_zum_print-Befehl_?= =?iso-8859-15?q?bei_Debconf=3A=3AClient=3A=3AConfModule?= Message-ID: <4C0BF357.20500@gmx.de> Hallo, euer Zaungast aus Thüringen muss euch schon wiedermal belästigen. Ich möchte für ein Projekt ein paar Debian-Pakete erstellen, wobei ich die Maintainer-Scripte in Perl erstellen will/werde. Shell-Scripting beherrsche ich eh nicht. Zum Zugriff auf die Debconf-Datenbank (dort stehen die Voreinstellungen) wird bei Debian das oben angegeben Modul mitgeliefert. Ich möchte jetzt einen Wert aus der Debconf-Datenbank auslesen. Folgendes Script tut *fast* das was es soll: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #!/usr/bin/perl use warnings; use strict; use Debconf::Client::ConfModule ':all'; version('2.0'); my ($status, $value) = get('delixs/host'); print $value, "\n"; open DATEI, '>', 'temp.txt' or die "konnte Datei nicht oeffnen.$!\n"; print DATEI $value, "\n"; close DATEI; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Auf der Konsole erscheint leider *nichts*. Aber in der Datei 'temp.txt' steht genau der gesuchte Wert drin! für mich völlig unerklärlich. Übrigens, ich habe einfach mal statt print $value, "\n"; stattdessen print 'hallo', "\n"; verwendet. Auch da kommt keinerlei Ausgabe. Wie kann soetwas geschehen bzw. wie kann ich das wieder ändern? Oder ist das Absicht? Falls jemand mir da weiterhelfen kann, wäre ich sehr dankbar. Mit freundlichen Grüßen Hans-Dietrich PS: in der Debian-User-Liste hatte ich auch schon nachgefragt. From support at robhost.de Mon Jun 7 01:35:50 2010 From: support at robhost.de (Martin Probst (RobHost Support)) Date: Mon, 7 Jun 2010 10:35:50 +0200 Subject: [Dresden-pm] Perl, utf8 und Umlaute In-Reply-To: <87typi35yf.fsf@renormalist.net> References: <59748BD8-8B09-429D-83C3-D50A4B7B3A5C@robhost.de> <871vcm63ln.fsf@renormalist.net> <7C71BCA8-995C-46CE-9E25-E24A190ACB8D@robhost.de> <87typi35yf.fsf@renormalist.net> Message-ID: Hallo Steffen, > "Martin Probst (RobHost Support)" writes: >> Hi Steffen, >> >> um es vorweg zu nehmen, mein Problem hat sich größtenteils schon >> erledigt. Ich hole mir die Daten jetzt als Latin1 und kodiere diese >> erst bei der Ausgabe zu UTF-8. Das behebt die meisten Probleme die >> ich habe. > > Dann interessiert mich aber trotzdem noch der Rest. > > Ich hab in einem Projekt schon manuell rumtricksen müssen, wenn manche > Frameworks ihre eigenen Heuristiken haben und wasserbettmäßig immer > genau das ausgleichen wollen, was man an den Daten grad gefixt > hat. Damals war das HTML::Mason oder eine Dependency davon. Das Problem war auch Perl bedingt, allerdings eher durch einen Fehler meinerseits. Ich habe alle entgegengenommen Strings mit utf8::encode($string) unless utf8::is_utf8; getestet. Dabei kamen dann doppelt kodierter Müll raus. Auch war meine erste Idee mit no utf8; $regexen; use utf8; scheinbar keine gute Idee. Nun ja jetzt klappt es ja, wie gesagt alles via Latin1 und erst bei der Ausgabe in UTF-8 umwandeln. Danke trotzdem Maddin From hd.kirmse at gmx.de Mon Jun 7 04:04:56 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Mon, 07 Jun 2010 13:04:56 +0200 Subject: [Dresden-pm] =?iso-8859-1?q?Verst=E4ndnisfrage_zum_print-Befehl_b?= =?iso-8859-1?q?ei_Debconf=3A=3AClient=3A=3AConfModule?= In-Reply-To: <4C0BF357.20500@gmx.de> References: <4C0BF357.20500@gmx.de> Message-ID: <4C0CD258.7090609@gmx.de> Hallo, ich schrieb: > Zum Zugriff auf die Debconf-Datenbank (dort stehen die Voreinstellungen) > wird bei Debian das oben angegeben Modul mitgeliefert. Ich möchte jetzt > einen Wert aus der Debconf-Datenbank auslesen. Folgendes Script tut > *fast* das was es soll: > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > #!/usr/bin/perl > use warnings; > use strict; > > use Debconf::Client::ConfModule ':all'; > version('2.0'); > > my ($status, $value) = get('delixs/host'); > print $value, "\n"; > > open DATEI, '>', 'temp.txt' > or die "konnte Datei nicht oeffnen.$!\n"; > print DATEI $value, "\n"; > close DATEI; > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Auf der Konsole erscheint leider *nichts*. Aber in der Datei 'temp.txt' > steht genau der gesuchte Wert drin! für mich völlig unerklärlich. in der Debian-Liste kam doch noch eine Antwort: Bei Shellscripts ist es so, dass Du, wenn Du das confmodule gesourced hast, auf Deinem stdin/stdout nicht mehr mit der Konsole sprichst, sondern mit debconf. Es würde mich wundern, wenn das bei perl anders wäre. eigentlich erklärt das, warum das so ist. Nur mein Problem ist damit nicht gelöst. Ich möchte in den Script auch weiterhin auf die Standardausgabe (Konsole) schreiben. D.h. nachdem in dem kleinen Beispiel-Script die Zeile my ($status, $value) = get('delixs/host'); abgearbeitet ist, möchte ich die Ausgabe wieder zurücksetzen, wie könnte man da vorgehen? (Habe sowas noch nie gemacht) Für jeden Tipp wäre ich sehr dankbar. Mit freundlichen Grüßen Hans-Dietrich From support at robhost.de Mon Jun 7 09:32:34 2010 From: support at robhost.de (Martin Probst (RobHost Support)) Date: Mon, 7 Jun 2010 18:32:34 +0200 Subject: [Dresden-pm] =?iso-8859-1?q?Verst=E4ndnisfrage_zum_print-Befehl_b?= =?iso-8859-1?q?ei_Debconf=3A=3AClient=3A=3AConfModule?= In-Reply-To: <4C0CD258.7090609@gmx.de> References: <4C0BF357.20500@gmx.de> <4C0CD258.7090609@gmx.de> Message-ID: Hallo Hans-Dietrich, Am 07.06.2010 um 13:04 schrieb Hans-Dietrich Kirmse: > Hallo, > > ich schrieb: > >> Zum Zugriff auf die Debconf-Datenbank (dort stehen die Voreinstellungen) >> wird bei Debian das oben angegeben Modul mitgeliefert. Ich möchte jetzt >> einen Wert aus der Debconf-Datenbank auslesen. Folgendes Script tut >> *fast* das was es soll: >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> #!/usr/bin/perl >> use warnings; >> use strict; >> use Debconf::Client::ConfModule ':all'; >> version('2.0'); >> my ($status, $value) = get('delixs/host'); >> print $value, "\n"; >> open DATEI, '>', 'temp.txt' >> or die "konnte Datei nicht oeffnen.$!\n"; >> print DATEI $value, "\n"; >> close DATEI; >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> Auf der Konsole erscheint leider *nichts*. Aber in der Datei 'temp.txt' >> steht genau der gesuchte Wert drin! für mich völlig unerklärlich. > > in der Debian-Liste kam doch noch eine Antwort: > > > Bei Shellscripts ist es so, dass Du, wenn Du das confmodule gesourced > hast, auf Deinem stdin/stdout nicht mehr mit der Konsole sprichst, > sondern mit debconf. Es würde mich wundern, wenn das bei perl anders > wäre. > > > eigentlich erklärt das, warum das so ist. Nur mein Problem ist damit > nicht gelöst. > > Ich möchte in den Script auch weiterhin auf die Standardausgabe > (Konsole) schreiben. D.h. nachdem in dem kleinen Beispiel-Script die Zeile > > my ($status, $value) = get('delixs/host'); > > abgearbeitet ist, möchte ich die Ausgabe wieder zurücksetzen, wie könnte > man da vorgehen? (Habe sowas noch nie gemacht) > Scheinbar selected das Modul einen anderen Ausgabekanal als Standard-Ausgabe. Probier doch nach dem get() mal ein > select( STDOUT ); und schau ob wieder die Konsole als Standard-Ausgabe verwendet wird. Was ich oben gerade sehe, du machst ja ein > print DATEI $value, "\n"; also ein print auf das Filehandle "DATEI", ergo Ausgabe in die Datei. Hattest du schon ein normales > print $value, "\n"; probiert? > Für jeden Tipp wäre ich sehr dankbar. > > Mit freundlichen Grüßen > Hans-Dietrich MfG Maddin From hd.kirmse at gmx.de Mon Jun 7 10:09:04 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Mon, 07 Jun 2010 19:09:04 +0200 Subject: [Dresden-pm] =?iso-8859-1?q?Verst=E4ndnisfrage_zum_print-Befehl_b?= =?iso-8859-1?q?ei_Debconf=3A=3AClient=3A=3AConfModule?= In-Reply-To: References: <4C0BF357.20500@gmx.de> <4C0CD258.7090609@gmx.de> Message-ID: <4C0D27B0.2070302@gmx.de> Hallo Martin, danke ersteinmal für deine Antwort. Martin Probst (RobHost Support) schrieb: >>> #!/usr/bin/perl >>> use warnings; >>> use strict; >>> use Debconf::Client::ConfModule ':all'; >>> version('2.0'); >>> my ($status, $value) = get('delixs/host'); >>> print $value, "\n"; ^^^^^^^^^^^^^^^^^^^ >>> open DATEI, '>', 'temp.txt' >>> or die "konnte Datei nicht oeffnen.$!\n"; >>> print DATEI $value, "\n"; >>> close DATEI; >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> Auf der Konsole erscheint leider *nichts*. Aber in der Datei 'temp.txt' >>> steht genau der gesuchte Wert drin! für mich völlig unerklärlich. >> in der Debian-Liste kam doch noch eine Antwort: >> Ich möchte in den Script auch weiterhin auf die Standardausgabe >> (Konsole) schreiben. D.h. nachdem in dem kleinen Beispiel-Script die Zeile >> >> my ($status, $value) = get('delixs/host'); >> >> abgearbeitet ist, möchte ich die Ausgabe wieder zurücksetzen, wie könnte >> man da vorgehen? (Habe sowas noch nie gemacht) >> > Scheinbar selected das Modul einen anderen Ausgabekanal als Standard-Ausgabe. ja. und zwar (nach der Aussage aus der Debian-Liste) so, dass er mit der Debconf-Datenbank kommuniziert. Aber nach diesem get-Befehl wird dieser Kanal nicht mehr gebraucht. Deswegen will ich den zurücksetzen. Aber ich weiss nicht wie das geht und habe auch (noch) nichts dazu gefunden. > Probier doch nach dem get() mal ein >> select( STDOUT ); > und schau ob wieder die Konsole als Standard-Ausgabe verwendet wird. nein, passiert leider nicht. > Was ich oben gerade sehe, du machst ja ein >> print DATEI $value, "\n"; > also ein print auf das Filehandle "DATEI", ergo Ausgabe in die Datei. Hattest du schon ein normales >> print $value, "\n"; > probiert? ja, genau in der Zeile oben drüber. Es passiert einfach nichts. Und genau das war das Problem, dass ich Stunden nach einen Fehler gesucht habe (die Syntax steht ja nicht in der Doku). Erst als ich mal ein print "hallo" eingefügt hatte und auch das nichts bewirkt hatte, bin ich auf den Trichter gekommen, dass mal in eine Datei zu schreiben. Aber leider bin ich noch nicht weiter. :( Mit freundlichen Grüßen Hans-Dietrich From ss5 at renormalist.net Mon Jun 7 10:14:02 2010 From: ss5 at renormalist.net (Steffen Schwigon) Date: Mon, 07 Jun 2010 19:14:02 +0200 Subject: [Dresden-pm] =?utf-8?q?Verst=C3=A4ndnisfrage_zum_print-Befehl_bei?= =?utf-8?q?_Debconf=3A=3AClient=3A=3AConfModule?= In-Reply-To: <4C0D27B0.2070302@gmx.de> (Hans-Dietrich Kirmse's message of "Mon\, 07 Jun 2010 19\:09\:04 +0200") References: <4C0BF357.20500@gmx.de> <4C0CD258.7090609@gmx.de> <4C0D27B0.2070302@gmx.de> Message-ID: <87pr023gv9.fsf@renormalist.net> Hans-Dietrich Kirmse writes: >> Probier doch nach dem get() mal ein >>> select( STDOUT ); >> und schau ob wieder die Konsole als Standard-Ausgabe verwendet wird. > > nein, passiert leider nicht. Und Du hast auch *danach* das print $value; probiert? Kind regards, Steffen -- Steffen Schwigon From hd.kirmse at gmx.de Mon Jun 7 10:39:33 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Mon, 07 Jun 2010 19:39:33 +0200 Subject: [Dresden-pm] =?iso-8859-1?q?Verst=E4ndnisfrage_zum_print-Befehl_b?= =?iso-8859-1?q?ei_Debconf=3A=3AClient=3A=3AConfModule?= In-Reply-To: <87pr023gv9.fsf@renormalist.net> References: <4C0BF357.20500@gmx.de> <4C0CD258.7090609@gmx.de> <4C0D27B0.2070302@gmx.de> <87pr023gv9.fsf@renormalist.net> Message-ID: <4C0D2ED5.4040307@gmx.de> Hallo, Steffen Schwigon schrieb: > Hans-Dietrich Kirmse writes: >>> Probier doch nach dem get() mal ein >>>> select( STDOUT ); >>> und schau ob wieder die Konsole als Standard-Ausgabe verwendet wird. >> nein, passiert leider nicht. > > Und Du hast auch *danach* das print $value; probiert? bevor wir aneinander vorbeireden, das habe ich gerade probiert: #!/usr/bin/perl use warnings; use strict; use Debconf::Client::ConfModule ':all'; version('2.0'); my ($status,$value) = get('delixs/host'); select( STDOUT ); print $value, "\n"; open DATEI, ">", "test2.txt" or die; print DATEI $value; close DATEI; __END__ auf der Konsole passiert *NICHTS* aber die Datei "test2.txt" wurde angelegt und der Hostname 'alix' reingeschrieben. Ohne zu wissen wie es geht, aber ich hätte erwartet, dass ich das Dateihandle(?) STDOUT erstmal sichern muss und dann wieder zurückschreiben muss. Aber wie gesagt, ich kenne mich da nicht aus und weiss erst recht nicht wie es geht. Nur, einfach dieses "select( STDOUT );" tut hier nichts :( Oder habe ich euch falsch verstanden? Mit freundlichen Grüßen Hans-Dietrich From support at robhost.de Mon Jun 7 11:39:36 2010 From: support at robhost.de (Martin Probst (RobHost Support)) Date: Mon, 7 Jun 2010 20:39:36 +0200 Subject: [Dresden-pm] =?utf-8?q?Verst=C3=A4ndnisfrage_zum_print-Befehl_bei?= =?utf-8?q?_Debconf=3A=3AClient=3A=3AConfModule?= In-Reply-To: <4C0D2ED5.4040307@gmx.de> References: <4C0BF357.20500@gmx.de> <4C0CD258.7090609@gmx.de> <4C0D27B0.2070302@gmx.de> <87pr023gv9.fsf@renormalist.net> <4C0D2ED5.4040307@gmx.de> Message-ID: <2C18E70D-C536-4FB8-8DF0-F87A316218A6@robhost.de> Hallo, Am 07.06.2010 um 19:39 schrieb Hans-Dietrich Kirmse : > Hallo, > > Steffen Schwigon schrieb: >> Hans-Dietrich Kirmse writes: >>>> Probier doch nach dem get() mal ein >>>>> select( STDOUT ); >>>> und schau ob wieder die Konsole als Standard-Ausgabe verwendet >>>> wird. >>> nein, passiert leider nicht. >> Und Du hast auch *danach* das print $value; probiert? > > bevor wir aneinander vorbeireden, das habe ich gerade probiert: Ja so meinte ich das. Das sollte wie erwähnt STDOUT wieder als Standard-Ausgabekanal nutzen. > > > #!/usr/bin/perl > use warnings; > use strict; > > use Debconf::Client::ConfModule ':all'; > version('2.0'); > my ($status,$value) = get('delixs/host'); > > select( STDOUT ); > > print $value, "\n"; > > open DATEI, ">", "test2.txt" or die; > print DATEI $value; > close DATEI; > > __END__ > > > auf der Konsole passiert *NICHTS* > aber die Datei "test2.txt" wurde angelegt und der Hostname 'alix' > reingeschrieben. > > Ohne zu wissen wie es geht, aber ich hätte erwartet, dass ich das > Dateihandle(?) STDOUT erstmal sichern muss und dann wieder > zurückschreiben muss. Aber wie gesagt, ich kenne mich da nicht aus u > nd > weiss erst recht nicht wie es geht. Normalweise sind STDIN, -OUT, -ERR per Default vorhanden, außer diese werden explizit überschrieben. Du könntest sowas wie am Anfang: my $out = *STDOUT; vor dem print: select($out); probieren. Allerdings weiß ich im Moment nicht ob Perl intern dup() nimmt oder ob $out nur eine Referenz auf STDOUT ist. Dann würde dies nichts nützen. MfG Maddin > From hd.kirmse at gmx.de Mon Jun 7 12:56:23 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Mon, 07 Jun 2010 21:56:23 +0200 Subject: [Dresden-pm] =?iso-8859-1?q?Verst=E4ndnisfrage_zum_print-Befehl_b?= =?iso-8859-1?q?ei_Debconf=3A=3AClient=3A=3AConfModule?= In-Reply-To: <2C18E70D-C536-4FB8-8DF0-F87A316218A6@robhost.de> References: <4C0BF357.20500@gmx.de> <4C0CD258.7090609@gmx.de> <4C0D27B0.2070302@gmx.de> <87pr023gv9.fsf@renormalist.net> <4C0D2ED5.4040307@gmx.de> <2C18E70D-C536-4FB8-8DF0-F87A316218A6@robhost.de> Message-ID: <4C0D4EE7.1090004@gmx.de> Hallo Martin, Martin Probst (RobHost Support) schrieb: > Normalweise sind STDIN, -OUT, -ERR per Default vorhanden, außer diese > werden explizit überschrieben. Du könntest sowas wie > > am Anfang: > my $out = *STDOUT; > > vor dem print: > select($out); > > probieren. geht leider auch nicht. :( Mal einen anderen Gedankengang, geht es nicht irgendwie, diesen Zugriff auf die Debconf-DB (mit eval & Co) in einen anderen Prozess oder so was ablaufen zu lassen? Habe ich aber auch keine Erfahrung damit :( MfG Hans-Dietrich PS: aber danke für die Information - schon wieder viel dazu gelernt. From support at robhost.de Mon Jun 7 14:08:00 2010 From: support at robhost.de (Martin Probst (RobHost Support)) Date: Mon, 7 Jun 2010 23:08:00 +0200 Subject: [Dresden-pm] =?iso-8859-1?q?Verst=E4ndnisfrage_zum_print-Befehl_b?= =?iso-8859-1?q?ei_Debconf=3A=3AClient=3A=3AConfModule?= In-Reply-To: <4C0D4EE7.1090004@gmx.de> References: <4C0BF357.20500@gmx.de> <4C0CD258.7090609@gmx.de> <4C0D27B0.2070302@gmx.de> <87pr023gv9.fsf@renormalist.net> <4C0D2ED5.4040307@gmx.de> <2C18E70D-C536-4FB8-8DF0-F87A316218A6@robhost.de> <4C0D4EE7.1090004@gmx.de> Message-ID: <4C1EC1DC-7B73-4151-9EE9-DD5ED48A59D9@robhost.de> So Hans-Dietrich, ich hab mir jetzt mal das Modul angeschaut, auf einer der ersten perldoc Zeilen steht auch schon die Erklärung: =item import Ensure that a FrontEnd is running. It's a little hackish. If DEBIAN_HAS_FRONTEND is set, a FrontEnd is assumed to be running. If not, one is started up automatically and stdin and out are connected to it. Note that this function is always run when the module is loaded in the usual way. Deswegen siehst du auch nichts, die verbiegen also explizit STDIN und -OUT. Um dies zu umgehen, kannst du folgendes benutzen: #!/usr/bin/perl use warnings; use strict; use Debconf::Client::ConfModule ':all'; version('2.0'); my ($status,$value) = get('delixs/host'); open(STDOUT, ">&2"); print $value, "\n"; Am ende ist nur die vorletzte Zeile neu, keine Ahnung was das Modul macht, aber ich habe es nicht geschafft das normale "STDOUT" wieder herzustellen. Mit der Lösung werden die Werte nach STDERR geprintet. Hinzu kommt noch das Debconf wild vor sich hin forked und ich nicht genau weiß wo was geändert wird. Ich weiß ja nicht was du machen willst/musst, nur ist die Frage ob es dafür vllt. sogar einen anderen Weg gibt, da mir dieser von Debian scheinbar nicht so gedacht/gewollt ist?! MfG Maddin From hd.kirmse at gmx.de Mon Jun 7 21:49:47 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Tue, 08 Jun 2010 06:49:47 +0200 Subject: [Dresden-pm] =?iso-8859-1?q?Verst=E4ndnisfrage_zum_print-Befehl_b?= =?iso-8859-1?q?ei_Debconf=3A=3AClient=3A=3AConfModule?= In-Reply-To: <4C1EC1DC-7B73-4151-9EE9-DD5ED48A59D9@robhost.de> References: <4C0BF357.20500@gmx.de> <4C0CD258.7090609@gmx.de> <4C0D27B0.2070302@gmx.de> <87pr023gv9.fsf@renormalist.net> <4C0D2ED5.4040307@gmx.de> <2C18E70D-C536-4FB8-8DF0-F87A316218A6@robhost.de> <4C0D4EE7.1090004@gmx.de> <4C1EC1DC-7B73-4151-9EE9-DD5ED48A59D9@robhost.de> Message-ID: <4C0DCBEB.1050405@gmx.de> Guten Morgen, Martin Probst (RobHost Support) schrieb: > So Hans-Dietrich, > > ich hab mir jetzt mal das Modul angeschaut, auf einer der ersten perldoc Zeilen steht auch schon die Erklärung: > > =item import > > Ensure that a FrontEnd is running. It's a little hackish. If > DEBIAN_HAS_FRONTEND is set, a FrontEnd is assumed to be running. > If not, one is started up automatically and stdin and out are > connected to it. Note that this function is always run when the > module is loaded in the usual way. > > Deswegen siehst du auch nichts, die verbiegen also explizit STDIN und -OUT. > Um dies zu umgehen, kannst du folgendes benutzen: > > #!/usr/bin/perl > use warnings; > use strict; > > use Debconf::Client::ConfModule ':all'; > version('2.0'); > my ($status,$value) = get('delixs/host'); > > open(STDOUT, ">&2"); > print $value, "\n"; ja, das ist mir jetzt verständlich und die Lösung aus meiner Sicht optimal. > > Am ende ist nur die vorletzte Zeile neu, keine Ahnung was das Modul macht, aber ich habe es nicht geschafft das normale "STDOUT" wieder herzustellen. Mit der Lösung werden die Werte nach STDERR geprintet. Hinzu kommt noch das Debconf wild vor sich hin forked und ich nicht genau weiß wo was geändert wird. > > Ich weiß ja nicht was du machen willst/musst, nur ist die Frage ob es dafür vllt. sogar einen anderen Weg gibt, da mir dieser von Debian scheinbar nicht so gedacht/gewollt ist?! die gehen sicher davon aus, dass man dann auf die Debconf-Datenbank zugreift, wenn Eingaben erfolgen und dazu werden ja üblicherweise Menüs aufgebaut. Und dafür gibt es verschiedene Frontends und dafür verbiegen die eben STDIN und STDOUT. Da ich aber keine Eingaben mehr brauche (das ist schon erledigt), brauche ich keine menüs und damit kein Frontend. aber ein paar Informationen will ich trotzdem (auf der Konsole) ausgeben. Ich denke, die Lösung ist durchaus vertretbar und auch legitim. Danke. Mit freundlichen Grüßen Hans-Dietrich From martin at suedvorstadt.de Tue Jun 8 12:17:54 2010 From: martin at suedvorstadt.de (martin) Date: Tue, 08 Jun 2010 21:17:54 +0200 Subject: [Dresden-pm] Bugfix in Perl SMTP Server In-Reply-To: <87sk524oki.fsf@renormalist.net> References: <4C09328A.3030308@suedvorstadt.de> <87sk524oki.fsf@renormalist.net> Message-ID: <4C0E9762.1080601@suedvorstadt.de> Hallo, meine Perl Kenntnisse sind leider nicht ausreichend genug um das Problem genauer zu untersuchen. Ich vermute das Net::SMTP einfach die empfangenen Daten nicht korrekt in Empfänger, Sender und Nachricht zerlegen kann. Das Skript gibt es hier: http://pastie.org/private/ehtqj0eweulfdtf7wosqkw Wie könnte man herausfinden ob es Beispielsweise am Encoding liegt? Grüße, martin Steffen Schwigon schrieb: > martin writes: > >> in Perl geschriebenen SMTP Server, >> Bug bei der Annahme von E-Mails >> smtpserver.pl >> smtprelay.pl >> smtpserver.pl Bug bei der Annahme von E-Mails des poMMo >> Newsletter-Skriptes >> > > Beschreib mal das Problem noch näher, geht was funktional nicht, oder > reden wir auch von Encoding-Problemen? Was anderes? > > Möchtest Du den Code nicht public machen oder willst Du nur die > Mailingliste schonen? Falls letzteres, dann paste den Code in > http://pastie.org/ und sende die URL hierher. > > Kind regards, > Steffen > From hd.kirmse at gmx.de Wed Jun 9 12:51:06 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Wed, 09 Jun 2010 21:51:06 +0200 Subject: [Dresden-pm] exitcode und die? Message-ID: <4C0FF0AA.4050305@gmx.de> Hallo, ich schon wieder - sorry, dass ich mit meinen vielen Fragen komme. wir bauen an einem Schulserver-Projekt und die Routinen z.B. zur klassenweise Verwaltung der Schüler habe ich als Perlscripte bereitgestellt. Die Oberfläche wird durch einen anderen Mitstreiter in PHP erstellt. Er bemängelte, dass dann, wenn bei mir die Scripte durch eine Ausnahmen, also mit "die" beendet werden, keine Fehlernummer zurückgegeben wurde. Er schrieb mir, dass der Exit-Code 0 zurückgegeben wird. Ich mache intensiven Gebrauch von "die", aber ich weiss nicht, wie man da eine Fehlernummer zurückgeben kann. Mit exit geht das natürlich, aber die Lösung ist im Vergleich zu "die" unschön. Meine Frage: wie kann man das machen, dass man "die" mit einem Exit-Code kombiniert? Mit freundlichen Grüßen Hans-Dietrich From maik at mm-double.de Wed Jun 9 13:11:55 2010 From: maik at mm-double.de (Maik Hentsche) Date: Wed, 9 Jun 2010 22:11:55 +0200 Subject: [Dresden-pm] exitcode und die? In-Reply-To: <4C0FF0AA.4050305@gmx.de> References: <4C0FF0AA.4050305@gmx.de> Message-ID: <20100609221155.6324ea04@zeus> Hans-Dietrich Kirmse wrote: > ich schon wieder - sorry, dass ich mit meinen vielen Fragen komme. Fragen sind grundsätzlich nicht schlimmes. Manche Leute lernen auf die Art. > wir bauen an einem Schulserver-Projekt und die Routinen z.B. zur > klassenweise Verwaltung der Schüler habe ich als Perlscripte > bereitgestellt. Die Oberfläche wird durch einen anderen Mitstreiter in > PHP erstellt. Er bemängelte, dass dann, wenn bei mir die Scripte durch > eine Ausnahmen, also mit "die" beendet werden, keine Fehlernummer > zurückgegeben wurde. Er schrieb mir, dass der Exit-Code 0 > zurückgegeben wird. die() beendet sich mit dem aktuellen Wert von $!. Wenn das gleich null ist, dass nimmt die() "($? >> 8)" - den Status des letzten qx()-Aufrufs. Wenn das auch gleich 0 ist, dann ist der Exitcode 255. Steht alles noch mal in perldoc -f die. Ein exitcode 0 für die() ist also schon extrem ungewöhnlich. Prüf es einfach noch mal nach und wenn es wirklich so ist, paste [1] deinen Code und schick uns einen Link. > Ich mache intensiven Gebrauch von "die", aber ich weiss nicht, wie man > da eine Fehlernummer zurückgeben kann. Mit exit geht das natürlich, > aber die Lösung ist im Vergleich zu "die" unschön. Die ist letztendlich auch nichts anderes als ein warn() und exit() mit ein bisschen Intelligenz dran. Und Schönheit liegt sicher im Auge des Lesers. so long & HTH Maik [1] !google pastebin -- Der Verstand ist wie eine Fahrkarte. Sie hat nur Sinn wenn man sie benutzt. (Ernst R. Hauschka (*1926), deutscher Essayist, Aphoristiker und Bibliothekar) -------------- nächster Teil -------------- Ein Dateianhang mit Binärdaten wurde abgetrennt... Dateiname : signature.asc Dateityp : application/pgp-signature Dateigröße : 189 bytes Beschreibung: nicht verfügbar URL : From create-soft at freenet.de Fri Jun 11 09:39:05 2010 From: create-soft at freenet.de (Torsten Knorr) Date: Fri, 11 Jun 2010 18:39:05 +0200 Subject: [Dresden-pm] exitcode und die? Message-ID: <000201cb0986$af5c23b0$0100a8c0@Travelbook> Hallo Hans On Wed, 09 Jun 2010, at 21:51:06, Hans-Dietrich Kirmse wrote: >Meine Frage: wie kann man das machen, dass man "die" mit einem Exit-Code >kombiniert? Inerhalb eines END-Blocks läßt sich die Variable $?, die den Exit-Code enthält bearbeiten. Torsten From hd.kirmse at gmx.de Mon Jun 14 09:07:39 2010 From: hd.kirmse at gmx.de (Hans-Dietrich Kirmse) Date: Mon, 14 Jun 2010 18:07:39 +0200 Subject: [Dresden-pm] exitcode und die? In-Reply-To: <000201cb0986$af5c23b0$0100a8c0@Travelbook> References: <000201cb0986$af5c23b0$0100a8c0@Travelbook> Message-ID: <4C1653CB.7040506@gmx.de> Hallo Torsten, hallo Maik, ich war die letzten Tage unterwegs, sodass ich erst heute auf eure Mails antworten kann. Torsten Knorr schrieb: > Hallo Hans > > On Wed, 09 Jun 2010, at 21:51:06, Hans-Dietrich Kirmse > wrote: > >> Meine Frage: wie kann man das machen, dass man "die" mit einem Exit-Code >> kombiniert? > > Inerhalb eines END-Blocks läßt sich die Variable $?, > die den Exit-Code enthält bearbeiten. ich denke, dass das für mich keine Lösung darstellt, weil ich in manchen Scripten mehrere Ausnahmen (bis zu 5) verwende. So wie ich das verstehe, wäre das (ohne Klimmzüge) nur für einen anderen Rückgabewert praktikabel. Maik schrieb: Die ist letztendlich auch nichts anderes als ein warn() und exit() mit ein bisschen Intelligenz dran. so werde ich das auch machen. Ich schreibe mir eine eigene Funktion, die ich statt "die()" aufrufe. Damit werde ich den Wünschen des PHP-Programmierers gerecht und es ist trotzdem eine einfache Lösung. Danke für eure Unterstützung. Viele Grüße Hans-Dietrich From mailinglisten at renee-baecker.de Tue Jun 15 01:27:59 2010 From: mailinglisten at renee-baecker.de (mailinglisten at renee-baecker.de) Date: Tue, 15 Jun 2010 10:27:59 +0200 Subject: [Dresden-pm] Perl@FrOSCon 2010 - CfP Message-ID: <20100615_082759_084777.mailinglisten@renee-baecker.de> Hi *! Die Organisatoren der FrOSCon 2010 haben uns auch in diesem Jahr wieder einen Raum für einen Tag für Perl-Vorträge zur Verfügung gestellt. Am 22. August 2010 wird es also wieder Perl-Vorträge geben. Insgesamt haben wir 7 Stunden für die Vorträge zur Verfügung. Die Vorträge sollten entweder 20, 40 oder 60 Minuten lang sein und logischerweise etwas mit Perl zu tun haben. Der Raum, der uns zur Verfügung steht, fasst ca. 40 Personen und im letzten Jahr waren bei den Vorträgen zwischen 20 und 40 Leuten anwesend. Bitte reicht die Vortragsvorschläge bis zum 15. Juli per E-Mail an froscon2010 at perl-magazin.de ein. Bis zum 22. Juli werden wir dann ein Programm zusammenstellen und euch darüber informieren. Der Vortragsvorschlag sollte eine kurze Zusammenfassung über den Vortragsinhalt sowie eine Längenangabe beinhalten. - Renée From pagaltzis at gmx.de Tue Jun 22 05:45:05 2010 From: pagaltzis at gmx.de (Aristoteles Pagaltzis) Date: Tue, 22 Jun 2010 14:45:05 +0200 Subject: [Dresden-pm] Bugfix in Perl SMTP Server In-Reply-To: <4C0E9762.1080601@suedvorstadt.de> References: <4C09328A.3030308@suedvorstadt.de> <87sk524oki.fsf@renormalist.net> <4C0E9762.1080601@suedvorstadt.de> Message-ID: <20100622124505.GB2170@klangraum.plasmasturm.org> Hi Martin, * martin [2010-06-08 21:15]: > meine Perl Kenntnisse sind leider nicht ausreichend genug um > das Problem genauer zu untersuchen. Ich vermute das Net::SMTP > einfach die empfangenen Daten nicht korrekt in Empfänger, > Sender und Nachricht zerlegen kann. wie äussert es sich denn soweit du es nachvollziehen kannst? Schlägt die Annahme der Mail fehl, klappt der Versand nicht, oder irgendwas ganz anderes? > Das Skript gibt es hier: > http://pastie.org/private/ehtqj0eweulfdtf7wosqkw > > Wie könnte man herausfinden ob es Beispielsweise am Encoding > liegt? Das Skript sieht nach einem ziemlich rudimentären Server aus? es könnte fast als Beispielcode herhalten. Ohne irgendeinen Hinweis darauf, was für Problem in der Praxis *überhaupt* auftritt, kann man nur blind raten, ob und wie der Code fehlerhaft sein könnte? (Oder den Quellcode sämtlicher Module komplett auditieren? dafür wirst du aber kaum jemanden finden? Davon abgesehen vermutest du erschwerenderweise, daß die Module lokal verändert sind ? dann kann man dir ohne Einblick schon gar nicht helfen.) Gruß, -- Aristoteles Pagaltzis // From ss5 at renormalist.net Thu Jun 24 17:16:14 2010 From: ss5 at renormalist.net (Steffen Schwigon) Date: Fri, 25 Jun 2010 02:16:14 +0200 (CEST) Subject: [Dresden-pm] Dresden Perl Mongers Treffen Juli 2010 Message-ID: <20100625001614.7AB4E9AD4DA@h132974.serverkompetenz.net> "Gedichte in sich selber hören schön" -- Rainald Goetz, Katarakt Hi! Am kommenden Donnerstag, treffen sich wieder die Dresden Perl Mongers. Und schonmal vorab: nächsten Monat machen wir möglicherweise das Treffen eine Woche später. Wie auch ever, jetzt erstmal das hier: Donnerstag, den 1. Juli 2010 20.30 Uhr Straßencafé (Straße E) Werner-Hartmann-Straße 4, 01099 Dresden http://www.strassencafe.de/ Wir bieten ernsthaften Support rund um Perl-Einstiegsthemen wie * Code-Reviews * erstes CPAN-Modul bauen * Updates zu Perl[56], Parrot, Rakudo, Perlworkshop, YAPC und für Fortgeschrittene * Trost * Folklore * misc & etc Anfahrt, Termine, Themen immer hier: * http://dresden-pm.org/PM/TermineTreffen Jeder ist eingeladen. Grüße, Steffen -- Steffen Schwigon Dresden Perl Mongers