Funktion join() in Perl

In der Programmiersprache Perl gibt es die eingebaute Funktion join(). Mit dieser Funktion können Sie mehrere Werte in einer Zeile.

Hier ist ein Beispiel:

▶ Run
#!/usr/bin/perl

my $str = join('<>', 'a', 'b', 'c');
print $str;

Das Programm zeigt den Text a<>b<>c.

Argumente

my $str1 = join($separator, $value1, $value2);
my $str2 = join($separator, @arr);
my $str3 = join($separator, @arr1, @arr2);

Standard-Funktion verwenden join() ist, übergeben Sie zwei oder mehr Argumente. Der erste Wert übertragen die Funktion ist eine Zeichenfolge aufgeteilt. Funktion join() gibt einen String zurück, in dem alle Werte ab zweiten miteinander verbunden sind, und zwischen Ihnen ist ein Trennzeichen. Beispiel (Programm zeigt a:b:c:d):

▶ Run
#!/usr/bin/perl

print join(':', 'a', 'b', 'c', 'd');

Wenn die Werte nach der Trennlinie geht nur ein Wert von das Ergebnis wird die Zeile besteht nur aus dem zweiten Wert. Beispiel (das Programm zeigt das a):

▶ Run
#!/usr/bin/perl

print join(':', 'a');

Wert zu teilen, kann ein oder mehrere Zeichen, und kann leer sein Zeile ''. Wenn Sie eine leere Zeichenfolge als einen ersten Wert, das Ergebnis der Funktion ist eine Verkettung der Werte. Beispiel (das Ergebnis der Arbeit Programm ABC):

▶ Run
#!/usr/bin/perl

print join('', 'A', 'B', 'C');

Wenn Sie die Funktionen join() nicht übergeben kein argument, dann wird der Fehler:

Not enough arguments for join or string at script.pl line 3, near "join()"
Execution of script.pl aborted due to compilation errors.

Wenn diese Funktion join() ein argument, das Ergebnis der Arbeit wird immer eine leere Zeile ''. Wenn Sie undef als einziger das argument, das Ergebnis wird auch eine leere Zeichenkette, aber bei eingeschalteten use warnings, dann auf STDERR wird eine Warnung angezeigt:

Use of uninitialized value in join or string at script.pl line 5.

Der Rückgabewert

Das Ergebnis der Arbeit der Funktion join() — es ist immer ein String.

Auch wenn Sie die Funktion join() mit zahlen, ist das Ergebnis immer noch ein String und keine Zahl. Wenn Sie schreiben join(1, 22, 33), ist das Ergebnis ein String '22133', und nicht die Anzahl der 22133. Aber es ist schwierig, sich eine Situation vorzustellen, in der es notwendig war, um join() gibt es eine Zahl, und nicht die Zeile. Aber im Falle von Perl ist es möglich, die Zeilen in allen mathematischen Operationen. Weitere Informationen wie Perl wandelt Zeichenfolgen in zahlen.

Verwandte Themen

Die offizielle Dokumentation

Hier ist die Ausgabe von perldoc -f join:

       join EXPR,LIST
               Joins the separate strings of LIST into a single string with
               fields separated by the value of EXPR, and returns that new
               string.  Example:

                   $rec = join(':', $login,$passwd,$uid,$gid,$gcos,$home,$shell);

               Beware that unlike "split", "join" doesn't take a pattern as
               its first argument.  Compare "split".

Andere Artikel