Funktion join() i Perl

I programmeringssproget Perl har en indbygget funktion join(). Ved hjælp af denne funktion, du kan kombinere flere værdier i en streng.

Her er et eksempel:

▶ Run
#!/usr/bin/perl

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

Programmet vil vise teksten a<>b<>c.

Argumenter

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

Standard hjælp join() , er at give hende to eller flere argumenter. Den første værdi som overføres til funktionen er den streng, der skal opdeles. Funktion join() returnerer en streng, hvor alle værdierne begynder med en anden, der er sluttet sammen, og mellem dem er en separator. Eksempel (program vil a:b:c:d):

▶ Run
#!/usr/bin/perl

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

I tilfælde af, at efter den værdi separator er kun én værdi, så resultatet er en streng, som kun består af den anden værdi. Eksempel (programmet vil vise a):

▶ Run
#!/usr/bin/perl

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

Værdien split kan være et eller flere tegn og kan være tomme line ''. Hvis du bruger en tom string som den første værdi, resultatet af funktionen er den sammenkædning af værdier. Eksempel (resultatet af program ABC):

▶ Run
#!/usr/bin/perl

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

Hvis funktioner join() ikke videregive nogen argumenter, vil det fejl:

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

Hvis overførslen funktion join() enkelt argument, vil resultatet blive altid en tom streng ''. Hvis du passerer undef som den eneste argument, så vil resultatet være en tom streng, men indgår use warnings, på STDERR vil du modtage en advarsel:

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

Return værdi

Resultatet af funktionen join() er altid en streng.

Selv hvis du bruger join() med tal, resultatet er stadig en snor, ikke et tal. Hvis du skriver join(1, 22, 33), vil resultatet være en streng '22133', ikke antallet 22133. Men det er svært at forestille sig en situation, hvor du var nødt til at join() returnerer beløbet ikke en streng. Men i tilfælde af Perl det er muligt at bruge strenge i alle matematiske operationer. Læs mere om , hvordan Perl konverterer strenge til tal.

Relaterede emner

Officiel dokumentation

Her er outputtet af kommandoen 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".

Andre artikler