gary: String in Variable bearbeiten

Morgen zusammen,

Ich bin auf der Suche nach einer Methode, einen String, der in einer Variable sitzt, zu bearbeiten. Ich habe da schon was gefunden und wollte zwischenfragen, ob es eventuell dafür noch eine elegantere Möglichkeit gibt:

Beispielvariable: $Thema

Variable-Inhalt:  rauchen.txt

Transformation:   rauchen

Ziel:             Neue Variable mit der bearbeiteten Zeichenkette ($Display)

---> Also die letzten vier Zeichen entfernen.

Meine Lösung würde so aussehen:
----------------------------------------
my $Display;
$Display = $Thema;

for (my $i = 1;$i <= 4;$i = $i + 1) {
chop ($Display);
}
----------------------------------------

Nachdem das hier vier mal durchgelaufen ist, wurde ".txt" hoffentlich erfolgreich entfernt.

Oder führt noch ein anderer Weg nach Rom?

Viele Grüsse gary

  1. Hallo gary!

    Beispielvariable: $Thema
    Variable-Inhalt:  rauchen.txt
    Transformation:   rauchen
    Oder führt noch ein anderer Weg nach Rom?

    Hier der Weg zu substr():

    de.selfhtml.org Klick!
    de.selfhtml.org/perl/ Klick!
    de.selfhtml.org/perl/funktionen Klick!
    de.selfhtml.org/perl/funktionen/zeichenketten.htm Klick!
    substr - Teilzeichenkette aus Zeichenkette extrahieren

    Viele Grüße aus Frankfurt/Main,
    Patrick

    --

    _ - jenseits vom delirium - _
    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
    Nichts ist unmöglich? Doch!
    Heute schon gegökt?
    1. Hi Patrick,

      Oder führt noch ein anderer Weg nach Rom?

      Hier der Weg zu substr():

      de.selfhtml.org Klick!
      de.selfhtml.org/perl/ Klick!
      de.selfhtml.org/perl/funktionen Klick!
      de.selfhtml.org/perl/funktionen/zeichenketten.htm Klick!
      substr - Teilzeichenkette aus Zeichenkette extrahieren

      *LOL*

      Gut, meine Schleife ist einfacher um die letzten vier Zeichen zu cutten.

      Auch noch gut: ucfirst kann ich sicher auch noch gut gebrauchen... :-)

      Viele Grüsse gary

      1. Mahlzeit gary,

        Gut, meine Schleife ist einfacher um die letzten vier Zeichen zu cutten.

        Ganz sicher nicht. Sie ist IMHO ziemlich Performance-fressend.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2.   
    my $Thema = "rauchen.txt";  
    my ( $Display ) = ( $Thema =~ /([A-Za-z0-9_-]+)\.txt$/ );  
      
    $Display ? print $Display : print "funny filename";  
    
    

    mfg Beat

    --
    Selber klauen ist schöner!
  3. Ich bin auf der Suche nach einer Methode, einen String, der in einer Variable sitzt, zu bearbeiten. Ich habe da schon was gefunden und wollte zwischenfragen, ob es eventuell dafür noch eine elegantere Möglichkeit gibt:

    für das was du vorhast, ja. HTML::Template

    for (my $i = 1;$i <= 4;$i = $i + 1) {

    Niemand der Perlgrundlagen kann, würde so eine Schleife bauen. Niemand!

    In Perl sieht das so aus:

    for(1..4) {

    und wenn du statt $_ wirklich $i verwenden willst, was meistens auch nicht nötig ist.

    for my $i (1..4) {

    Meine Vermutung ist aber du willst ein Array durchlaufen, dann

    foreach my $item (@array) {

    chop ($Display);

    auch das ist nicht das was du willst, ich habe dir aber schon gezeigt was du willst, aber wie immmer du ignorierst alles und reimst dir irgendeinen Mist zusammen.

    Ich weiß nicht warum du dich weigerst a. Tipps anzunehmen und b. mal die Doku zu lesen du wirst a. weniger Fragen haben uind b. besser und schneller zu deinem Ziel kommen.

    Struppi.

    1. Hi Struppi,

      for (my $i = 1;$i <= 4;$i = $i + 1) {

      Niemand der Perlgrundlagen kann, würde so eine Schleife bauen. Niemand!

      *LOL* Sorry, so steht es aber im Selfhtml. Genau so!

      In Perl sieht das so aus:

      for(1..4) {

      Wenn das funktioniert ist das noch besser - Danke :-)

      Meine Vermutung ist aber du willst ein Array durchlaufen, dann

      Nein, überhaupt nicht.

      chop ($Display);

      auch das ist nicht das was du willst, ich habe dir aber schon gezeigt was du willst, aber wie immmer du ignorierst alles und reimst dir irgendeinen Mist zusammen.

      Doch, dass will ich. $Thema brauche ich, da es als Dateiöffner dient(die Datei rauchen.txt)

      $Display brauche ich um in den Links auf der linken Seite das .txt zu entfernen, da es blöd aussieht, sowohl auch um die Teilüberschriften (Anker) vom unschönen .txt zu befreien.

      Ich weiß nicht warum du dich weigerst a. Tipps anzunehmen und b. mal die Doku zu lesen [...]

      Ich nehme Tipps an. Ich lese die Doku (immer nur die Teile, die für mich interessant sein könnten (learning by doing). Dein Html::Template Link, den du schon des öffteren verlinkt hast:

      Das ist ein Modul. Das ist einfach noch zu früh, bzw. zu kompliziert für mich. Ausserdem wo ist der Spass, wenn ich ein fertiges Modul einsetzte?
      Zudem müsste ich mich damit beschäftigen, wie man sowas einsetzt und zum laufen bekommt. Vielleicht ist es gar nicht installiert und ich habe keinen installationszugriff auf den Server?

      Ich habe mich eigentlich schon immer dagegen gewehrt, fertiges zu verwenden. Wenn ich mal was ändern will, weiss ich, wo ich Hand anlegen muss.
      Ein Modul zu ändern, dürfte aber etwas schwieriger sein. Und dann noch das Thema Sicherheit und Sicherheitslücken. Wer garantiert mir, das bei der vielzahl der Module nicht irgendwo hintertürchen eingebaut sind?

      So denn ,

      Viele Grüsse gary

      1. for (my $i = 1;$i <= 4;$i = $i + 1) {

        Niemand der Perlgrundlagen kann, würde so eine Schleife bauen. Niemand!

        *LOL* Sorry, so steht es aber im Selfhtml. Genau so!

        Ja ich weiß, der das geschrieben hat, kannte nur ein paar Grundlagen. Aber es ist ja nicht so, dass diese Schleife nicht funktioniert.

        Doch, dass will ich. $Thema brauche ich, da es als Dateiöffner dient(die Datei rauchen.txt)

        Wie im anderen Zweig gesagt, ich hatte dich falsch verstanden, tut mir leid.

        Das ist ein Modul. Das ist einfach noch zu früh, bzw. zu kompliziert für mich. Ausserdem wo ist der Spass, wenn ich ein fertiges Modul einsetzte?

        Der spaß ist der das a. Dinge fertig werden und du b. lernst Perl zu programmieren.

        Zudem müsste ich mich damit beschäftigen, wie man sowas einsetzt und zum laufen bekommt. Vielleicht ist es gar nicht installiert und ich habe keinen installationszugriff auf den Server?

        wie schon gesagt, du solltest dir erst mal einen lokalen Server und Perl installieren, da ist das alles kein Problem, nur ein Befehl: ppm install HTML-Template

        Ich habe mich eigentlich schon immer dagegen gewehrt, fertiges zu verwenden. Wenn ich mal was ändern will, weiss ich, wo ich Hand anlegen muss.

        Deine Sichtweise zeugt nicht von Weitblick, ich sagte dir ja schon mal, Perl ist erstmal nur ein Grundgerüst, die Module machen es wirklich zu einem Arbeitsgerät. Und gerade für Aufgaben die immer wieder vorkommen gibt es zahlreiche Module. Je früher du damit anfängst umso besser wirst du Perl lernen.

        Ein Modul zu ändern, dürfte aber etwas schwieriger sein. Und dann noch das Thema Sicherheit und Sicherheitslücken. Wer garantiert mir, das bei der vielzahl der Module nicht irgendwo hintertürchen eingebaut sind?

        Die Quelltexte sind offen und können von jedem eingesehen und kontrolliert werden, du bist also der Meinung das tausende Perlexperten beim CPAN deine Skripte unsicherer machen als deine eigene Kenntnisse?
        Na das zeugt doch mal von einem gehörgen Portion selbstbewußtsein oder arrognaz.

        Struppi.

        1. Hi Struppi,

          [...]von einem gehörgen Portion selbstbewußtsein oder arrognaz.

          ^^^^^

          Ist das der Bruder von Ignaz?

          *SCNR*

          Grüsse gary

      2. Hallo gary!

        for (my $i = 1;$i <= 4;$i = $i + 1) {
        Niemand der Perlgrundlagen kann, würde so eine Schleife bauen. Niemand!
        *LOL* Sorry, so steht es aber im Selfhtml. Genau so!

        Wo? (http://de.selfhtml.org/perl/sprache/schleifen.htm#for <- hier nicht, und das sollte die erste Anlaufstelle für die Erläuterungen zu Schleifen in Perl).

        Viele Grüße aus Frankfurt/Main,
        Patrick

        --

        _ - jenseits vom delirium - _
        [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
        Nichts ist unmöglich? Doch!
        Heute schon gegökt?
        1. Wo? (http://de.selfhtml.org/perl/sprache/schleifen.htm#for <- hier nicht, ...

          doch, Leider.

          Struppi.

          1. Hallo Struppi!

            Wo? (http://de.selfhtml.org/perl/sprache/schleifen.htm#for <- hier nicht, ...

            doch, Leider.

            Da sehe ich nur ein Beispiel mit einer Iteration, und das ist gleich der Erste:

            for(my $i = 1; $i <= 100; $i++) {  
             print "<span style=\"font-size:$i\".\"pt\">$i pt</span><br>\n";  
            }
            

            Und das sieht anders aus, als Garys Schleife, die keinen Inkrementoperator benutzt. Was ist am Beispiel schlecht? Ich weiß, dass in vielen Fällen foreach besser ist, aber nicht selten muss man doch iterieren... Abgesehen davon, dass Garys Vorhaben keine Schleife benötigt ;)

            Viele Grüße aus Frankfurt/Main,
            Patrick

            --

            _ - jenseits vom delirium - _
            [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
            Nichts ist unmöglich? Doch!
            Heute schon gegökt?
            1. Da sehe ich nur ein Beispiel mit einer Iteration, und das ist gleich der Erste:

              for(my $i = 1; $i <= 100; $i++) {

              print "<span style="font-size:$i"."pt">$i pt</span><br>\n";
              }

                
              Ach so, mir geht es um diese "C Style" Schleife sowas braucht man in Perl nicht. Das obige ist:  
              ~~~perl
              for(1..100) {  
              print "<span style=\"font-size:$_\".\"pt\">$_ pt</span><br>\n";  
              }
              

              (wobei auch der HMTL Code .... Ach, lassen wir das, ich hatte damals nicht die Muse alle Beispiele von Christoph vernünftig anzupassen und auch eine andere Vorstellung von Perlcode, aber er hat es wenigstens gemacht)

              Was ist am Beispiel schlecht? Ich weiß, dass in vielen Fällen foreach besser ist, aber nicht selten muss man doch iterieren...

              Das wäre ja wieder was anderes, es gibt Fälle vom man den Index braucht (um z.b. nach dem vorherigen oder nächsten Element zu schauen), aber dann ziehe ich vor es so zu machen:

              var $index = 0;  
              foreach(@array) {  
              ....  
              $index++  
              }  
              
              

              Wobei es hierfür mit 100% Sicherheit auch ein schönes Modul gibt.

              Struppi.

              1. Hallo Struppi!

                Ach so, mir geht es um diese "C Style" Schleife sowas braucht man in Perl nicht. Das obige ist:

                for(1..100) {

                print "<span style="font-size:$"."pt">$ pt</span><br>\n";
                }

                  
                Ja, eleganter und kürzer...  
                  
                
                > (wobei auch der HMTL Code .... Ach, lassen wir das, ich hatte damals nicht die Muse alle Beispiele von Christoph vernünftig anzupassen und auch eine andere Vorstellung von Perlcode, aber er hat es wenigstens gemacht)  
                  
                Ein print qq~~; wäre schon etwas schöner, ja;  
                  
                Ansonsten bin ich etwas anderer Meinung als Siechfred und Du. Einem absolute Beginner wie Gary würde ich nicht sofort mit allen Modulen konfrontieren. Sogar Schwartz' Einführung in Perl tut das nicht. Wichtig ist IMHO zunächst die Pragmata zu kennen (use strict; use warnings;), sich mit den Variablen zu beschäftigen (da gibt es genug zu tun) - das CGI-Modul würde ich auch etwas später in der Lernphase einbringen (wenn auch nicht zu spät \*g\*). Dafür auf jeden Fall jetzt schon in jedem Skript use CGI::Carp qw(fatalsToBrowsers);, wenn er, wie es den Anschein hat, eh nicht auf der Konsole sondern nur online arbeitet.  
                  
                Er soll sich zunächst auseinandersetzen mit dem, was wir ihm schon gezeigt haben (verschiedene Formen der Ausgabe mit print, evtl. HERE-Dokumente für längere Ausgaben). Und je mehr er lernt, falls er dabei bleibt, dann würde ich ihm zuerst das CGI-Modul nahelegen, und erst dann HTML::Template.  
                  
                Hm, just my 2 cents!  
                  
                
                > Wobei es hierfür mit 100% Sicherheit auch ein schönes Modul gibt.  
                  
                  
                ;)  
                  
                  
                Viele Grüße aus Frankfurt/Main,  
                Patrick
                
                -- 
                ![](http://www.atomic-eggs.com/fuernA.jpg)  
                  
                \_ - jenseits vom delirium - \_  
                  
                [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
                Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml)  
                Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
                
                1. (wobei auch der HMTL Code .... Ach, lassen wir das, ich hatte damals nicht die Muse alle Beispiele von Christoph vernünftig anzupassen und auch eine andere Vorstellung von Perlcode, aber er hat es wenigstens gemacht)

                  Ein print qq~~; wäre schon etwas schöner, ja;

                  z.b. und das font-Tag und Einheiten in pt und immer das unnötige Newline am Ende.

                  Ansonsten bin ich etwas anderer Meinung als Siechfred und Du.

                  Kommt halt drauf an was man machen will, da das Projekt von Gary grossspurig CMS heißt, soll es mehr werden und da wird man früher oder später nicht umhin kommen Module zu verwenden. Das CGI Modul auf jeden Fall schon früher. Das größte Problem bei Gary ist, das er noch nicht mal eigene Funktionen verwende will und sich die Fehler nicht anzeigt die durchaus passieren können. fatalsToBrowser ist ja schon ok, leider sieht man aber die Warnungen nicht, dazu muss man etwas mehr Aufwand betreiben:
                  (aus der CGI::Carp Doku)~~~perl     use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
                      use CGI qw(:standard);
                      print header();
                      warningsToBrowser(1);

                    
                  Struppi.
                  
                  1. Hallo Struppi!

                    Kommt halt drauf an was man machen will, da das Projekt von Gary grossspurig CMS heißt,

                    Dann sollte er anfangs kleinere Brötchen backen ;)

                    leider sieht man aber die Warnungen nicht, dazu muss man etwas mehr Aufwand betreiben:
                    (aus der CGI::Carp Doku)~~~perl

                    use CGI::Carp qw(fatalsToBrowser warningsToBrowser);

                    use CGI qw(:standard);
                        print header();
                        warningsToBrowser(1);

                      
                    und Active Perl installieren und Teile seines Code in der Konsole testen. Den lokalen Webserver haben wir auch schon hier und da beim Antworten eingebracht!  
                      
                      
                    Viele Grüße aus Frankfurt/Main,  
                    Patrick
                    
                    -- 
                    ![](http://www.atomic-eggs.com/fuernA.jpg)  
                      
                    \_ - jenseits vom delirium - \_  
                      
                    [[link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash](http://www.atomic-eggs.com/)]  
                    Nichts ist unmöglich? [Doch!](http://www.atomic-eggs.com/cwi/cwi_4.shtml)  
                    Heute schon ge[gök](http://goek.atomic-eggs.com/goek_goek.html)t?
                    
                    1. und Active Perl installieren und Teile seines Code in der Konsole testen. Den lokalen Webserver haben wir auch schon hier und da beim Antworten eingebracht!

                      Daran geht kein Weg vorbei.
                      Aber richtig heiss oder cool wird es bei CGI Anwendungen doch nur mit einem lokalen Apache, und ich will nie mehr in den Zustand von Juli 2005 (Harddisccrash) zurückversetzt werden, bis dato musste ich nämlich trickreich die %ENV setzen, um meine CGI Skripte zu testen.
                      Seither habe ich mein privates Internet.

                      mfg Beat

                      --
                      Selber klauen ist schöner!
            2. Hallo Patrick,

              Abgesehen davon, dass Garys Vorhaben keine Schleife benötigt ;)

              Das bringt mich auf folgende Idee:

              chop ($Display);
              chop ($Display);
              chop ($Display);
              chop ($Display);

              Hehe, müsste doch auch gehen, oder?

              Gruss gary

              1. Abgesehen davon, dass Garys Vorhaben keine Schleife benötigt ;)

                Das bringt mich auf folgende Idee:

                und warum willst du nicht die Funktion verwenden die für sowas gedacht ist?

                Struppi.

              2. Hallo gary!

                Hehe, müsste doch auch gehen, oder?

                Nicht alles was »geht« ist auch angebracht. Angebracht für den Fall, wie Du ihn geschildert hast, ist substr(). Ist die Abkürzung von »substring«, also in etwa »Substrahieren von Stringteilen«, also genau das, was Du brauchst.

                Viele Grüße aus Frankfurt/Main,
                Patrick

                --

                _ - jenseits vom delirium - _
                [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                Nichts ist unmöglich? Doch!
                Heute schon gegökt?
                1. Nicht alles was »geht« ist auch angebracht. Angebracht für den Fall, wie Du ihn geschildert hast, ist substr().

                  Ganz gewiss nicht.

                  mfg Beat

                  --
                  Selber klauen ist schöner!
                  1. Hallo Beat!

                    Ganz gewiss nicht.

                    Begründung?

                    Viele Grüße aus Frankfurt/Main,
                    Patrick

                    --

                    _ - jenseits vom delirium - _
                    [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                    Nichts ist unmöglich? Doch!
                    Heute schon gegökt?
                    1. Ganz gewiss nicht.
                      Begründung?

                      Du kennst Gary's Problem:

                      • Prüfung seines Inputs.
                        Ich denke dass der Hinweis auf Taintcheck und die Vorsehung einer dafür geeigneten Methode angebrachter ist, wie ich sie im chronologisch frühesten Posting meinerseits [1] in diesem Thread vorgeschlagen habe.

                      Es gibt viele Ansichten. Aber "Perl Best Practices" [2] darf man im richtigen Kontext durchaus auch vorbeugend praktizieren.

                      [1] https://forum.selfhtml.org/?t=172128&m=1127569
                      [2] Kennst du sicher...

                      mfg Beat

                      --
                      Selber klauen ist schöner!
                      1. Hallo Beat!

                        Du kennst Gary's Problem:

                        • Prüfung seines Inputs.

                        Im Moment hat er noch keine Benutzereingaben, so dass

                        Taintcheck und die Vorsehung einer dafür geeigneten Methode angebrachter ist

                        stimmen mag. Nur im Moment noch nicht ;)

                        Außerdem ging es um das Verkürzen von Strings, da ist IMHO substr() angebrachter als ein RegEx.

                        "Perl Best Practices" [2]
                        [2] Kennst du sicher...

                        Leider nicht, außer vom Namen her. Ich habe drei Perl-Bücher:

                        • Einführung in Perl      [x] gelesen
                        • Programmieren mit Perl  [x] gelesen
                        • Perl Kochbuch           [x] bisher nur kurz reingeschaut

                        Viele Grüße aus Frankfurt/Main,
                        Patrick

                        --

                        _ - jenseits vom delirium - _
                        [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                        Nichts ist unmöglich? Doch!
                        Heute schon gegökt?
                        1. Außerdem ging es um das Verkürzen von Strings, da ist IMHO substr() angebrachter als ein RegEx.

                          "Perl Best Practices" [2]
                          [2] Kennst du sicher...

                          Leider nicht, außer vom Namen her. Ich habe drei Perl-Bücher:

                          • Einführung in Perl      [x] gelesen
                          • Programmieren mit Perl  [x] gelesen
                          • Perl Kochbuch           [x] bisher nur kurz reingeschaut

                          Viele Grüße aus Frankfurt/Main,
                          Patrick

                          Ich habe das Buch Perl best Practices selbst nicht, sondern nur Ausschnitte davon. Ich klaue mir eigentlich so ziemlich alles zusammen, was wirklich fundamentale Tipps sind, und versuche es zu verinnerlichen.
                          Das hat mich zu einem Schreibstil geführt, der zimperlich aussieht.
                                 print 'Sie sind der ', $numb, 'ste Besucher in den letzten ",
                                       $numb2, "Tagen.";
                          Der Stil unterscheidet sich fundamental von der Selfhtml Doku.
                                 open( $fh, "<", $file) or die;
                          Sieht auch zickig aus. Aber das hat seinen Grund, und ist alles ein Resultat dieser Verinnerlichung.

                          Nun dort (Best Practices)und auch allgemein (auch in der Docu) wird halt gesagt, dass die Stärke von Regulären Ausdrücken darin liegt, mehrere Dinge zu prüfen.

                          • Uns sicher zu sein, dass wir wirklich vor uns haben, was wir brauchen,
                          • Unfälle vermeiden
                          • Den Taint Mechanismus befriedigen.
                              Man stelle sich vor man aktiviert ihn, und muss dann sein halbes Programm umschreiben)

                          Ich habe zudem einige Performancetests gemacht, und bin zum Schluss gekommen, dass es nie ein Argument gegen diese Art der Prüfung ist (vernünftige Patterns vorausgesetzt).

                          Substring prüft nur auf Länge, nicht aber auf Inhalt.

                          mfg Beat

                          --
                          Selber klauen ist schöner!
                          1. Viele Grüße aus Frankfurt/Main,
                            Patrick

                            Nana, Tofu

                            Der Stil unterscheidet sich fundamental von der Selfhtml Doku.

                            Hätte ich mehr Zeit gehabt hätte ich dort auch noch einiges geändert, aber Christoph hat sich durchgesetzt, ich finde den Stil auch furchtbar. Aber letztlich sollte man nicht meckern, wenn man es hätte selber besser machen können (damit meine ich mich).

                            Substring prüft nur auf Länge, nicht aber auf Inhalt.

                            Daher hatte ich ihn auch gefragt ob er wikrlich nur die letzten Zeichen abschneiden will => substr oder die Dateiendung, da wäre dann wiederrum die Frage woher der wert kommt, bisher ist er ja festverdrahtet, insofern spricht nichts gegen substr. aber mal sehen welches Problem dadurch als näxtes auftaucht, wir kriegen hier ja alles mit was Gary so verzapft ;-)

                            Struppi.

                            1. Ich mache übrigens der Selfhtnl Abteilung Perl keinen Vorwurf. Sie bietet einen Einstieg. Den Sprung zur tiefer gehenden Literatur sollte man halt auch selbst machen.

                              Ich wollte noch anfügen, dass man das Buch "Perl Best Practices" bei Google im HTML Output und richtigen Bildschirm vorausgesetzt praktisch unbeschränkt lesen kann.
                              http://books.google.ch/books?id=gJf9tI2mytIC&dq="perl+best+practices"&pg=PP1&ots=Hk_ckQwBfr&sig=mYtzDQpxvhbDSG207AbyPUOCiF8&hl=de&prev=http://www.google.ch/search%3Fq%3D%2522Perl%2BBest%2BPractices%2522%26ie%3Dutf-8%26oe%3Dutf-8%26rls%3Dorg.mozilla:de:official%26client%3Dfirefox-a&sa=X&oi=print&ct=title&cad=one-book-with-thumbnail

                              mfg Beat

                              --
                              Selber klauen ist schöner!
                              1. Hallo Beat!

                                Ich wollte noch anfügen, dass man das Buch "Perl Best Practices" bei Google im HTML Output und richtigen Bildschirm vorausgesetzt praktisch unbeschränkt lesen kann.
                                http://books.google.ch/books?id=gJf9tI2mytIC&dq="perl+best+practices"&pg=PP1&ots=Hk_ckQwBfr&sig=mYtzDQpxvhbDSG207AbyPUOCiF8&hl=de&prev=http://www.google.ch/search%3Fq%3D%2522Perl%2BBest%2BPractices%2522%26ie%3Dutf-8%26oe%3Dutf-8%26rls%3Dorg.mozilla:de:official%26client%3Dfirefox-a&sa=X&oi=print&ct=title&cad=one-book-with-thumbnail

                                Interessante Art, Bücher zu lesen. Danke für den Link!

                                Viele Grüße aus Frankfurt/Main,
                                Patrick

                                --

                                _ - jenseits vom delirium - _
                                [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
                                Nichts ist unmöglich? Doch!
                                Heute schon gegökt?
                          2. Hallo.

                            print 'Sie sind der ', $numb, 'ste Besucher in den letzten ",
                                         $numb2, "Tagen.";

                            Bitte keine Beleidigungen.
                            MfG, at

  4. ---> Also die letzten vier Zeichen entfernen.

    Oh Mann, jetzt habe ich das erst verstanden ws du willst. Dann ist die Hälfte was ich vorher gesagt habe falsch. willst du die Dateiendung entfernen oder die letzten vier Zeichen?

    Wenn's wirklich nur die letzten vier Zeichen sind, dann ist die Lösung vom Patrick besser als deine. was ein kleiner Vergleich auch deutlich zeigt:

    #!/usr/bin/perl -w  
    use strict;  
    use Benchmark;  
    Benchmark::cmpthese(500000, {  
            'patrick' => \&patrick,  
            'gary' => \&gary  
    });  
    sub patrick {  
     my $Display = 'test.txt';  
     $Display = substr $Display, 0, -4;  
    }  
    sub gary {  
     my $Display = 'test.txt';  
     for (my $i = 1;$i <= 4;$i = $i + 1) {chop ($Display);}  
    }
    

    Rate    gary patrick
    gary    210704/s      --    -77%
    patrick 907441/s    331%      --

    D.h. substr ist ca. 4 mal so schnell wie deine "Lösung".

    Struppi.

    1. Hi Struppi,

      Sorry, ich habe jetzt schon leider meinen Senf unten zu deinem Post abgelassen. In dem Fall nehme ich es zurück. ;-)

      #!/usr/bin/perl -w

      use strict;
      use Benchmark;
      Benchmark::cmpthese(500000, {
              'patrick' => &patrick,
              'gary' => &gary
      });
      sub patrick {
      my $Display = 'test.txt';
      $Display = substr $Display, 0, -4;
      }
      sub gary {
      my $Display = 'test.txt';
      for (my $i = 1;$i <= 4;$i = $i + 1) {chop ($Display);}
      }

      
      >   
      >             Rate    gary patrick  
      > gary    210704/s      --    -77%  
      > patrick 907441/s    331%      --  
      >   
      > D.h. substr ist ca. 4 mal so schnell wie deine "Lösung".  
        
      Du Programmierungstier! Stark gemacht \*staun\* . Zwischenfrage: Drehe mal die sub-Blöcke in deinem Programm um, so dass ich oben stehe. Wie sieht dann der Benchmark für mich aus?  
        
      Grüsse gary  
      
      
      1. Du Programmierungstier! Stark gemacht *staun* . Zwischenfrage: Drehe mal die sub-Blöcke in deinem Programm um, so dass ich oben stehe. Wie sieht dann der Benchmark für mich aus?

        Noch schlechter ;-)

        Nein, die Reihenfolge im Quelltext ist absolut unherblich. Aber du wirst bei jedem durchlauf ein leicht abweichendes Ergebnis erhalten, da (vermutlich) immer mal wieder windows nachschaut ob es was in der Konsole machen kann.

        Struppi.

        1. Hallo.

          da (vermutlich) immer mal wieder windows nachschaut ob es was in der Konsole machen kann.

          "Entschuldigung, ich hoffe, ich störe nicht. Ich wollte nur fragen, ob ihr vielleicht etwas trinken wollt."
          MfG, at

    2. Performance ohne Rücksicht auf Kontext und Taintcheck Kompatibilität ist irrelevant.

      mfg Beat

      --
      Selber klauen ist schöner!
      1. Performance ohne Rücksicht auf Kontext und Taintcheck Kompatibilität ist irrelevant.

        Wo Du Recht hast, da hast Du Recht. Aber was hat das mit Struppis Posting zu tun?

        Siechfred

        --
        Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.
  5. Ich bin auf der Suche nach einer Methode, einen String, der in einer Variable sitzt, zu bearbeiten. Ich habe da schon was gefunden und wollte zwischenfragen, ob es eventuell dafür noch eine elegantere Möglichkeit gibt:

    Für Deinen Anwendungsfall:

    my $display = (split /\./, $thema)[0];

    Wollte ich nur noch ergänzen ;)

    Siechfred

    --
    Hinter den Kulissen passiert viel mehr, als man denkt, aber meistens nicht das, was man denkt.
    1. Hallo Siechfred!

      my $display = (split /\./, $thema)[0];
      Wollte ich nur noch ergänzen ;)

      Genial!

      Nur: Jetzt kann Gary noch die Seite über Arrayslices suchen ;)

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --

      _ - jenseits vom delirium - _
      [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      Nichts ist unmöglich? Doch!
      Heute schon gegökt?
  6. Gute Nacht zusammen,

    So, habe etwas Zeit gefunden, um die Vorschläge ein zu bauen. So sieht es jetzt aus:

    my $zeile = <LESER>;
    my ($Layout1, $Thema, $Bild) = split(/,/,$zeile);
    $Display = $Thema;
    $Display = substr $Display, 0, -4;
    $Display = ucfirst ($Display);
    push (@LinkCollect, $Display);

    Geht einwandfrei! Zur Not hätte ich aber auch vier mal hintereinander den chop-Befehl  schreiben können *g*- käme auf das Selbe heraus.

    Gute Nacht und vielen Danke an _Alle_ Helfer.

    Grüsse gary