Beat: Variable Typ - .txt-Inline?

Beitrag lesen

Also du sagst es geht ganz normal mit:

open(DATENDATEI, "</artikel_text/rauchen.txt");

^^ da fehlt was

flock(DATENDATEI, LOCK_SH);

Dann wäre die Datei mal offen.

Vielleicht, vielleicht nicht :))

Variabeln in Perl beginnen ja mit dem Dollarzeichen z. B. "$Text".

Nö:
Strings und Referenzen beginnen mit $
$string
$reference
@array
%hash
aber
$array[0]; erstes Array-Element
$hash{'somekey'}; ein Hashelement

Verwirrend, aber am Schluss weiss man immer, was man vor sich hat.

Der Rest ist mir noch etwas suspect. Zielte deine Antwort darauf ab, daß ich den Text in rauchen.txt sogar als Block mit Umbrüchen schreiben könnte, und dann dein Konstrukt den Absatz in ein einzeiligen Strig verwandelt?

'Einzeilig' wäre er erst dann, wenn du nachträglich die \n entfernst.

Diese Zeile habe ich nicht verstanden:

my string = "";
open( FH, "<", $path ) or die("$!, Textdatei nicht gefunden.");
          ^^^^^^^^^^^^^^       ^
          $path? FH?         wenn Datei nicht da ist stop (oder stirb *g*)

FH ist kurz für Filehandle
$path: Das File mit Pfad das du öffnen willst

open( FH, "<", $path ) # besser
und
open( FH, "<$path" ) # weniger besser
können oder können nicht gleichwertig sein, je nachdem woher dein $path kommt.

Ich darf auch schreiben:
my $fh = 'TEST';
open($fh, "<", $file) or die ....

Ich kann also das Filehandle in einer Variable speichern.
Persönlich habe ich es noch nicht gebraucht.

Gibt es keine Art $Text = read (all)?

sub suck_all{
  # schreibe es selbst;
}

Die schlechte Nachricht:
Perl ist nicht PHP
Die gute Nachricht:
Perl ist nicht PHP

Programmiererpflicht nr 1: Prüfe stets, ob ein Vorgang auch zum gewünschten Resultat führt.
or die() ist nur dann angebracht, wenn das File wirklich vorhanden sein muss, da sonst der weitere Betrieb unsinnig wird.
Wenn das File nicht vorhanden ist, wirst du etwas machen wollen wie

or return('some val');

kehre aus deiner sub zurück und mache, was man in einem solchen Fall aus der Programmlogik weiter tun würde.

or error('case') # eine eigene Fehlerroutine

<FH> ist der Zeilenoperator über dem geöffneten Filehandle.
Es kommt darauf an, ob der Kontext String oder List ist.

$string = <FH>; das gesamte File in einem String, eventuell ist das böse.
$array = <FH>; jede Zeile mit \n am Schluss als Element des Arrays übergeben.

mfg Beat

--
Selber klauen ist schöner!
0 192

Variable Typ - .txt-Inline?

gary
  • perl
  1. 0
    Beat
    1. 0
      Patrick Andrieu
      1. 0
        at
        1. 0
          Siechfred
          1. 0
            at
            1. 0
              Malcolm Beck´s
              1. 0
                at
                1. 0
                  Malcolm Beck´s
                  1. 0
                    at
                    1. 0
                      Patrick Andrieu
                      1. 0
                        Malcolm Beck´s
                        1. 0
                          Patrick Andrieu
                          1. 0
                            Malcolm Beck´s
                            1. 0
                              Patrick Andrieu
                              1. 0
                                Malcolm Beck´s
                                1. 0
                                  at
                                  1. 0
                                    Malcolm Beck´s
                                    1. 0
                                      Patrick Andrieu
                                      1. 0
                                        Malcolm Beck´s
                                    2. 0
                                      at
                                      1. 0
                                        Malcolm Beck´s
                                        1. 0
                                          at
                                          1. 2
                                            at
                                            1. 0
                                              Patrick Andrieu
                                              1. 0
                                                at
                                                1. 0
                                                  Patrick Andrieu
                                                  • seitenbewertung
                                                  1. 0

                                                    Yet another Tutorial

                                                    Malcolm Beck´s
                                                    1. 0
                                                      at
                                            2. 0
                                              Malcolm Beck´s
                                              1. 0
                                                at
                                                1. 0
                                                  Malcolm Beck´s
                                                  1. 0

                                                    kein Perl

                                                    Patrick Andrieu
                                                    • seitenbewertung
                                                  2. 0
                                                    at
                                                    1. 0
                                                      Malcolm Beck´s
                                                      1. 0
                                                        at
                                                        1. 0
                                                          Malcolm Beck´s
                                                          1. 0
                                                            at
                                                            1. 0
                                                              Malcolm Beck´s
                                                              1. 0
                                                                at
                                                                1. 0
                                                                  Malcolm Beck´s
                                                                  1. 0
                                                                    at
                                                                    1. 0
                                                                      Malcolm Beck´s
                                                                      1. 0
                                                                        at
                                                                        1. 0
                                                                          Malcolm Beck´s
                                                                          1. 0
                                                                            at
                                                                            1. 0
                                                                              Malcolm Beck´s
                                                                              1. 0
                                                                                at
                                                                                1. 0

                                                                                  Ideen für Seitendesign

                                                                                  Malcolm Beck´s
                                                                                  • meinung
                                                                                  1. 0
                                                                                    Malcolm Beck´s
                                                                                    1. 0
                                                                                      at
                                                                                      1. 0
                                                                                        Malcolm Beck´s
                                                                                        1. 0
                                                                                          Malcolm Beck´s
                                                                                          1. 0
                                                                                            at
                                                                                        2. 0
                                                                                          at
                                                                                          1. 0
                                                                                            Malcolm Beck´s
                                                                                            1. 0
                                                                                              at
                                                                                              1. 0
                                                                                                Malcolm Beck´s
                                                                                                1. 0
                                                                                                  at
                                                                                                  1. 0
                                                                                                    Malcolm Beck´s
                                                                                                    1. 0
                                                                                                      at
                                                                                                      1. 0
                                                                                                        Malcolm Beck´s
                                                                                                        1. 0
                                                                                                          at
                                                                                                          1. 0
                                                                                                            Malcolm Beck´s
                                                                                                            1. 0
                                                                                                              at
                                                                                                              1. 0
                                                                                                                Malcolm Beck´s
                                                                                                                1. 0
                                                                                                                  Malcolm Beck´s
                                                                                                                  1. 0
                                                                                                                    at
                                                                                                                    1. 0
                                                                                                                      Malcolm Beck´s
                                                                                                                      1. 0
                                                                                                                        at
                                                                                                                        1. 0
                                                                                                                          Malcolm Beck´s
                                                                                                                          1. 0
                                                                                                                            at
                                                                                                                            1. 0
                                                                                                                              Malcolm Beck´s
                                                                                                                              1. 0
                                                                                                                                at
                                                                                                                                1. 0
                                                                                                                                  Malcolm Beck´s
                                                                                                                                  1. 0
                                                                                                                                    at
                                                                                                                                    1. 0
                                                                                                                                      Malcolm Beck´s
                                                                                                                                      1. 0
                                                                                                                                        at
                                                                                                                                        1. 0
                                                                                                                                          Malcolm Beck´s
                                                                                                                                          1. 0
                                                                                                                                            at
                                                                                                                                            1. 0
                                                                                                                                              Malcolm Beck´s
                                                                                                                                              1. 0
                                                                                                                                                at
                                                                                                                                                1. 0
                                                                                                                                                  Malcolm Beck´s
                                                                                                                                                  1. 0
                                                                                                                                                    at
                                                                                                                                                    1. 0
                                                                                                                                                      Malcolm Beck´s
                                                                                                                                                      1. 0
                                                                                                                                                        at
                                                                                                                                                        1. 0
                                                                                                                                                          Malcolm Beck´s
                                                                                                                                                          1. 0
                                                                                                                                                            at
                                                                                                                                                            1. 0
                                                                                                                                                              Malcolm Beck´s
                                                                                                                                                              1. 0
                                                                                                                                                                at
                                                                                                                                                                1. 0
                                                                                                                                                                  Malcolm Beck´s
                                                                                                                                                                  1. 0
                                                                                                                                                                    at
                                                                                                                                                                    1. 0
                                                                                                                                                                      Malcolm Beck´s
                                                                                                                                                                      1. 0
                                                                                                                                                                        at
                                                                                                                                                                        1. 0
                                                                                                                                                                          Malcolm Beck´s
                                                                                                                                                                          1. 0
                                                                                                                                                                            at
                                                                                                                                                                            1. 0
                                                                                                                                                                              Malcolm Beck´s
                                                                                                                                                                              1. 0
                                                                                                                                                                                Malcolm Beck´s
                                                                                                                                                                                1. 0
                                                                                                                                                                                  at
                                                                                                                                                                                  1. 0
                                                                                                                                                                                    Malcolm Beck´s
                                                                                                                                                                                    1. 0
                                                                                                                                                                                      at
                                                                                                                                                                                      1. 0
                                                                                                                                                                                        Malcolm Beck´s
                                                                                                                                                                                        1. 0
                                                                                                                                                                                          at
                                                                                                                                                                                          1. 0
                                                                                                                                                                                            Malcolm Beck´s
                                                                                                                                                                                            1. 0
                                                                                                                                                                                              at
                                                                                                                                                                                              1. 0
                                                                                                                                                                                                Malcolm Beck´s
                                                                                                                                                                                                1. 0
                                                                                                                                                                                                  at
                                                                                                                                                                                                  1. 0
                                                                                                                                                                                                    Malcolm Beck´s
                                                                                                                                                                                                    1. 0
                                                                                                                                                                                                      at
                                                                                                                                                                              2. 0
                                                                                                                                                                                at
                                                                                                                                  2. 0
                                                                                                                                    Patrick Andrieu
                                                                                                                                    1. 0
                                                                                                                                      Malcolm Beck´s
                                                                                                                                      1. 0
                                                                                                                                        at
                                                                                  2. 0
                                                                                    at
                      2. 0
                        at
                        1. 0
                          Patrick Andrieu
                          1. 0
                            at
                            1. 0
                              Patrick Andrieu
                    2. 0
                      Malcolm Beck´s
                      1. 0
                        at
                        1. 0
                          Malcolm Beck´s
                          1. 0
                            at
                            1. 0
                              Malcolm Beck´s
    2. 0
      gary
      1. 0
        Patrick Andrieu
        1. 0
          gary
          1. 0
            Siechfred
            1. 0

              Variable Typ - >>erledigt<<

              gary
              1. 0

                slurp

                Kurt Z
        2. 0
          Malcolm Beck´s
          1. 0
            Patrick Andrieu
      2. 0
        Beat
        1. 0
          Patrick Andrieu
  2. 0
    Patrick Andrieu
    1. 0
      gary
      1. 0
        Siechfred
        1. 0
          Struppi
      2. 0
        Patrick Andrieu
      3. 1
        Struppi
  3. 0
    gary
    1. 0
      gary
      1. 0
        Beat
        1. 0
          gary
          1. 0
            gary
          2. 0
            Beat
            1. 0
              gary
              1. 0
                Struppi
                1. 0
                  gary
                  1. 0
                    Struppi
              2. 0
                Beat
                1. 0
                  gary
                  1. 0
                    Patrick Andrieu
                    1. 0
                      Beat
                      1. 0
                        Patrick Andrieu
                        1. 0
                          Beat
                    2. 0
                      gary
                      1. 0
                        Patrick Andrieu
                        1. 0
                          Patrick Andrieu
                          1. 0

                            Variable Typ - .txt-Inline

                            gary
                            1. 0
                              Patrick Andrieu
                              1. 0

                                Help!

                                gary
                                1. 0
                                  Patrick Andrieu
                                2. 0
                                  Beat
                      2. 0
                        Struppi
                        1. 0
                          gary
                          1. 0
                            Struppi
                            1. 0
                              gary
                              1. 0
                                Struppi
                                1. 0
                                  Struppi
                                2. 0
                                  Patrick Andrieu
                                3. 0
                                  gary
                                  1. 0
                                    Patrick Andrieu
                                    1. 0
                                      Struppi
                                    2. 0
                                      gary
                                      1. 0
                                        Patrick Andrieu
                                      2. 0
                                        Struppi
                                        1. 0
                                          gary
                                          1. 0
                                            Siechfred
                                            1. 0
                                              Patrick Andrieu
                                              1. 0
                                                gary
                                                1. 0
                                                  Patrick Andrieu
                                                  1. 0
                                                    thebach
                                                    1. 0
                                                      Patrick Andrieu
                                  2. 0
                                    Struppi
                              2. 0
                                Patrick Andrieu
                                1. 0
                                  Struppi
                  2. 0
                    Struppi
                  3. 0
                    Patrick Andrieu
                2. 0
                  Struppi
        2. 0
          Patrick Andrieu
    2. 0
      Patrick Andrieu
      1. 0
        gary