Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!] - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Raphael (267 Beiträge) am Mittwoch, 30.Juli.2003, 17:28. WWW: www.coderarena.de
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      sag mal ruben, in letzter zeit ist nextfloor ab und zu einfach nicht erreichbar... bist du da dran schuld!? ;-)

      cu, raphael


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 10:24.
    @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      Hallo
      so - nun hat mich CB mit den Referenzen verrückt gemacht ;-)
      Ich möchte gern an eine Sub drei Werte übergeben, wobei der einen eine Liste ist und die anderen zwei nur Scalare.
      Wie kriegt man das denn möglicherweise hin?
      Hier mal die Sub (die baut eine Tabelle dynamisch je nach Elementzahl die in der Liste stehen und je nachdem, wie die Zahl für den einen übergebenen Wert ist und, wenn ein Trennflag übergeben wird, noch mit farbigen Trennungen zwischen die einzelnen Tabellenzellen mit Inhalt):
      ---schnipp
      sub dynatable{
      # @tz_inhalt soll als Liste übergeben werden
      # $teiler soll als scalar übergeben werden
      # $flag soll als scalar übergeben werden
      

      my @l_tzinhalt; my $teiler; my flag; # alles übergebene Werte
      my $tz; # lexikalisch um Quereffekte zu vermeiden
      while(@l_tzinhalt){
        $tz.= "<tr>"; # neue Tab-Zeile
              my $trenntd = "<td width=1 bgcolor=$fd><img src=$pix width=1></td>" if $flag eq "trennung";
          for ($z=1; $z<=$teiler; $z++){  # soviele Tab-Zellen wie durch \$teiler vorgegeben
          $trenntd = "" if ($z  == $teiler); # keine Trennzeile wenn Letzte Tab-Zelle in Zeile
          $tz.=  shift @l_tzihnalt;
          $trenntd = $#l_tzihnalt > -1 ? $trenntd : ""; # noch Tab-Zelle aus Liste für die akt.Tab-Zeile? - dann Trennzeile dazu
          $tz.= $trenntd;
          }
       $tz.= "</tr>"; # Tabellenzeilenende
      }
      my $tab_dyna = "<table align=center border=1 cellspacing=0 cellpadding=0>$tz</table>";
      return $tab_dyna;
      }
      
      --- schnapp
      Kann mir da bitte mal jemand "unter die Arme greifen", da ich diesen Codeblock gelegentlich einsetze, würde ich den gern als Sub anlegen und nicht jedesmal ins Template schreiben....
      Danke
      Ruben

     Antworten

    Beitrag von Claus Christmeier (598 Beiträge) am Mittwoch, 30.Juli.2003, 10:47.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      Hallo Ruben,

      versuch es doch mal so:

      my (@l_tzinhalt, $teiler, $flag) = @_; # alles übergebene Werte
      

      Vielleicht klappt´s ja.

      Viel Erfolg

      Gruß
      Claus



      PS:

      Deinen Vorschlag und den von Sander werde ich dann gleich mal ausprobieren - Dank an beide

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 30.Juli.2003, 12:31.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      auch wieder über referenzen ;-)

      @arr=("bla","blubb");
      $teiler=1;
      $flag=0;
      &blubb(\@arr,$teiler,$flag);
      sub blubb{
         my @l_tzinhalt=@{shift @_}; # liste rausholen
         my ($teiler,$flag)=@_; # skalare rausholen
         out "@l_tzinhalt";
      }
      

      aber CB findet sicher noch was feineres ;-)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 13:13.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      jepp - Sander das wars.
      Ich Kam... hab probiert wie ein doofer, die Syntax hatte ich ähnlich gemacht, aber in der Schleife dann aus ner nicht vorhandenen Liste (falscher Name, nicht angepasst) versucht Werte zu shiften, da hat er sich jedesmal dran totgelaufen.....
      Danke - Referenzen begonnen zu verstehen... ;-)
      Auf CBs feineres bin ich mal gespannt *sfg*
      Ruben

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 30.Juli.2003, 13:25.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      Ich wollt ja eigentlich garnich drauf eingehen, weils schon Ok is, aber... ;-) Ich würde in der sub weiter mit den Referenzen arbeiten und das nich wieder inne Liste zurückführen ("Hilfe, diese Zeit- & Platzverschwendung! Ihr jungen Leute in der Konsumgesellschaft wisst ja garnich, wie das früher war, da musste man mit den knappen Mitteln haushalten..." ;-) )

      sub blubb
      {
        my($liste, $teiler, $flag)=@_;
        out "@$liste";
      }
      

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 15:12.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      gut provoziert oder? ;-)))) Das "aber..." fehlte mir schon lange ;-)
      Kannst du mir mal kurz erklären, wie das dann mit den Listenwerten funzt - wenn ich die Liste als Referenz übergebe und Referenz weiterverarbeite, wird aber trotzdem die Ursprungsliste in der Sub manipuliert? - auch wenn man bspw. die Gültigkeit der Liste im aufrufenden Scriptblock lexikalisch gesetzt hat?
      Und mit der "zeit- und ressourcenverschwendenen" Syntax wird die Liste aus der Ursprungsliste mittels der Referenz bei der Dereferenzierung in die neue Liste kopiert? - hab ich das so in Ansätzen richtig verstanden?
      Das gleiche müsste dann ja auch für Scalar- und Hashreferenzen gelten (mhm - hashs werden ja aber als Liste referenziert - puhh, das is schon nich ganz ohne....)
      Danke für Tipp
      Ruben

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 30.Juli.2003, 15:41.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      Gute Frage ;-) Weiss ich ehrlich gesagt garnich... Aber probiers halt einfach aus:

      @x=(1,2,3);
      &test(\@x);
      out "@x";
      sub x
      {
        my $r=$_[0];
        $$r[0]=4;
      }
      

      Obwohl wenn ichs mir genau anschau, dann würd ich sagen: @x verändert sich... ;-)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 30.Juli.2003, 15:54.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      jo - auf jeden fall, du schreibst ja in der speicheradresse rum ;-)
      sonst halt doch vorher kopieren :-)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 16:24.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      jetzt scheint der Groschen gefallen zu sein - hab nochmal das Perl-Kochbuch hergenommen und versucht, die Sache zu verstehen.
      Ne Referenz ist ja genau das was es heißt - ein Bezug auf ein egal was (Scalar, Liste, Hash) - und wie du schon sagts, Sander, ein Bezug auf einen "Wert" in einer Speicheradresse.
      Da ist dann halt "nur" drauf aufzupassen, was man denn nun wirklich manipuliert haben will, den "Ursprung" der Referenz oder tatsächlich ne Kopie...
      Danke - es hat mir sehr geholfen.
      Ruben

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 16:49.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      so - ich wollte es doch nochmal wissen, wie es denn mit den "jungen Leuten der Konsumgsellschaft" wirklich steht *gg*
      Hab zwei Subs gebaut, eine mit direkter Referenzbearbeitung, eine mit umkopieren der Referenz in neue Liste.
      Die Unterschiede sind nicht sehr Signifikant (bei 100.000 Schleifendurchläufen) -[Sander möge mir Verzeihen - das Script läuft reichlich 5 Sekunden bei 2x 100.000 fors - hoffe euer Server verkraftet das - geb deshalb auch keinen Link...]
      Hier das Ergebnis:
      Schleife 1 mit Referenz und 100000 Durchläufen: 2.45 Sekunden
      Schleife 2 mit Referenz umkopieren und 100000 Durchläufen: 2.75 Sekunden
      So, nun hätten wir das auch geklärt :-))
      Ruben

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 30.Juli.2003, 17:01.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      fein...
      und der watchdog hat sich nicht gemeldet ;-)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 17:14.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      Der kleine Bello scheint bei Euch eh recht großzügig eingestellt zu sein - ist mir heut bei meinen Experimenten aufgefallen) - hoffe, es gab keine Probleme mit anderen Usern?

     Antworten

    Beitrag von Raphael (267 Beiträge) am Mittwoch, 30.Juli.2003, 17:28. WWW: www.coderarena.de
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      sag mal ruben, in letzter zeit ist nextfloor ab und zu einfach nicht erreichbar... bist du da dran schuld!? ;-)

      cu, raphael

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 17:35.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      ups - da krieg ich ja gleich ein schlechtes Gewissen - ich hab heut grad mal seit Mittag etwa mit paar verqueren Dingen hantiert (na solange der Thread halt läuft) - und vorhin paarmal den Laufzeittest gemacht.
      Aber du wirst lachen, gelegentlich ist es tatsächlich mal paar Sekunden bis Minuten weg (auch wenn ich nichts verrücktes mache)
      Wenn ich heut dran schuld war, dass der Server geschnauft hat sorry an alle, bin wieder "normal" am Arbeiten.
      (Sander schau doch mal nach, was die log-Dateien sagen, kann das wirklich so wild sein.... heute?)
      Ruben

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 30.Juli.2003, 17:41.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      also frank arbeitet heute schon den ganzen tag auf nextfloor - der server war immer da und erreichbar. Wenn du ne msg bekommst, das die seite nicht angezeigt werden kann, liegt es sicher am ressourcenbedarf deines scriptes (speicher voll oder zeit abgelaufen). und wie schon gesagt, in den logs kann ich nichts erkennen.

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 18:00.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      gut, dann bin ich beruhigt - Raphael hatte mich ganz wuschig gemacht....
      Und weisst ja - nichts ist unmöglich (noch dazu wenn hempel was ausprobiert *fg*)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 30.Juli.2003, 17:37.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      >>  letzter zeit ist nextfloor ab und zu einfach nicht erreichbar
      
      echt? glaub ich nich ;-)

     Antworten

    Beitrag von Raphael (267 Beiträge) am Mittwoch, 30.Juli.2003, 18:00. WWW: www.coderarena.de
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      du ungläubiger! ;-) aber das ist nicht meine idee, ein freund von mir, ebenfalls bei nextfloor kunde, klagt auch immer wieder, dass nextfloor minutenweise einfach nicht erreichbar ist. sieht man 5 minuten später wieder rein -> geht wieder alles...

      cu, raphael

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 18:04.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      denkste nicht, dass "immer wieder" übertrieben ist?
      Bin seit vorige woche rund um die Uhr am Tag vielleicht 12 Stunden drin - es gab mal nen paar-Minuten-Hänger am Sonntag abend und am Montag früh warns Sekunden - zumindest bei mir
      Und vorhin, als ich bischen "gespielt" hatte, ging trotz "Langlaufscript" noch ein anderes in ner normalen Zeit (so um die 0,3 Sekunden)

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 30.Juli.2003, 23:09.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      ahh, in der nacht gegen 2-3 uhr läuft das backup der kundendaten... vor allem Sonntag ist das schon heftig, was da an daten bewegt wird.

     Antworten

    Beitrag von Raphael (267 Beiträge) am Donnerstag, 31.Juli.2003, 14:56. WWW: www.coderarena.de
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      ich überwache den server ja nicht rund um die uhr und 7 tage die woche, aber es kommt doch eben "immer wieder" vor. soll keine anschuldigung an irgendjemanden sein, wollte ich halt nur mal erwähnen ;)

      cu, raphael

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 30.Juli.2003, 17:35.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      wie meinst du?
      kann nix feststellen...

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 30.Juli.2003, 19:50.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      "nicht sehr signifikant" - das sind 12% Beschleunigung!! ;-) Aber ich sags ja: Die jungen Leute heute......

      Ausserdem: Wieviel Elemente hatte die Liste um die's ging denn?

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Mittwoch, 30.Juli.2003, 20:25.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      du willsts halt wieder genau wissen ;-) (und gerechnet haste auch noch... stimmt aber, 12% sieht schon gut aus)
      Also - traus mich ja garnich zu sagen, war ne klitzekleine Liste mit 3 Tabellenzellen, jede so um die 500 Zeichen lang.
      Werds aber nich nochmal mit ner 20KB grossen Liste testen, irgendeiner der Provider hupft mir sonst mit dem nackten A.. ins Gesicht.... *gg*

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Mittwoch, 30.Juli.2003, 22:59.
    Re: @Perler - Liste und Scalare an Sub übergeben? [Sander-Abenteuer!]

      Wieso, mach das doch hier bei baseportal.de ;-)

      Und nimm mal mhh, 100 Elemente oder mehr...

     Antworten


     
 Liste der Einträge von 36001 bis 36151:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!