Mister Fluffy: Kleines Problem

Hallo Leute,
ich habe vor kurzem angefangen mich mit Perl zu beschäftigen, und habe atm folgendes Problem. Ich habe ein Script, welches alle möglichen Kombinationen von 4 oder weniger Buchstaben berechnen und in eine Datei schreiben soll.
http://cxg.de/?id=JTRxsYpekiKMgCn
Das Problem ist aber, es funktioniert nicht ganz, zwar rechnet und schreibt es, aber nach "zzz" kommt nicht "aaaa" sondern "baaa", wo ist der Fehler?

  1. Das Problem ist aber, es funktioniert nicht ganz, zwar rechnet und schreibt es, aber nach "zzz" kommt nicht "aaaa" sondern "baaa", wo ist der Fehler?

    soweit ich das beurteilen kann, kommt nach 999 auch nicht 0000 sondern 1000 ;) - deiner entsprechnung ist z die höchste ziffer und a entsprich 0, sowie b 1

    1. soweit ich das beurteilen kann, kommt nach 999 auch nicht 0000 sondern 1000 ;) - deiner entsprechnung ist z die höchste ziffer und a entsprich 0, sowie b 1

      awww, stimmt natürlich, und wie könnte man dass beheben? immer subtrahieren wäre ja doof, aber es auf 27 zeichen erweitern geht auch nicht...

      1. awww, stimmt natürlich, und wie könnte man dass beheben? immer subtrahieren wäre ja doof, aber es auf 27 zeichen erweitern geht auch nicht...

        ich verstehe die frage nicht - zählt dein script dann nicht falsch?

  2. Ich habe ein Script, welches alle möglichen Kombinationen von 4 oder weniger Buchstaben berechnen und in eine Datei schreiben soll.
    http://cxg.de/?id=JTRxsYpekiKMgCn

    Probier mal diese Kommandozeile:

      
    perl -le '$x="a"; print $x++ while($x ne "aaaaa")'  
    
    
    1. Ich habe ein Script, welches alle möglichen Kombinationen von 4 oder weniger Buchstaben berechnen und in eine Datei schreiben soll.
      http://cxg.de/?id=JTRxsYpekiKMgCn

      Probier mal diese Kommandozeile:

      perl -le '$x="a"; print $x++ while($x ne "aaaaa")'

        
      Cool ;-)  
        
        
      Hotte 
      
    2. Hi,

      nett, aber wieso ist

        
        perl -le '$x="a"; $x++; print $x'
      ~~~ = b?  
        
        
      Und wieso ist  
      ~~~perl
        
        perl -le '$x="a"; $x+=1; print $x'
      ~~~ = 1?  
        
      Fragen über Fragen ...
      
      1. Hi,

        nett,

        Ja, finde ich auch. Ist wohl die Musterlösung (falls man von sowas beim Programmieren überhaupt reden kann) für die Problemstellung.

        aber wieso ist

        perl -le '$x="a"; $x++; print $x'

          
        Das weiß ich auch nicht.  
        Ich würde vermuten, dass das ist ein Feature ist, das man einfach so hinnehmen muss.  
          
        
        > Und wieso ist  
        > ~~~perl
          
        
        >   perl -le '$x="a"; $x+=1; print $x'
        
        ~~~ = 1?  
          
        Hier addierst du einen String mit einer Zahl. Dabei wird der Zahlenwert des Strings mit 1 addiert und das Ergebnis in $x geschrieben.  
        Der Zahlenwert von Strings ist immer 0.  
          
        Das ist das gleiche warum das hier a ausgibt:  
        perl -le 'print "a" if ("bla" == "blubb")'  
          
        Hier wird in der if-Abfrage numerisch verglichen, also ist es das gleiche wie "0 == 0".  
          
        mfG,  
        steckl
        
      2. Hi,

        nett, aber wieso ist

        perl -le '$x="a"; $x++; print $x'

        
        > ~~~perl
          
        
        >   perl -le '$x="a"; $x+=1; print $x'
        
        ~~~ = 1?  
          
        Weil dieses "special feature" im auto-increment-Operator sitzt, siehe  
          
        <http://perldoc.perl.org/perlop.html#Auto-increment-and-Auto-decrement>  
          
        cu,  
        Andreas
        
        -- 
        [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
        [O o ostern ...](http://ostereier.andreas-waechter.de/)  
          
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.  
        
        
      3. Super, dank euch beiden für die Erklärung :-)