/ / Utilizzando join per aggiungere a, all'ultimo elemento di un array in perl - perl

Usando join per aggiungere a, all'ultimo elemento di una matrice in perl - perl

Ho un array di date. Sto cercando di aggiungere virgole agli elementi dell'array. Sto usando join. Ho bisogno di una virgola aggiunta all'ultimo elemento. Ecco il mio contributo - 2020 02 20 La mia uscita dovrebbe essere - 2020,02,20,

Ecco il mio codice

@date = join( ",",@date); or @date = join( map "$_,",@date );

Bit non riesco a ottenere la virgola sull'ultimo elemento. Sarebbe davvero bello se questo potesse essere raggiunto usando solo join.

Grazie in anticipo.

risposte:

10 per risposta № 1

Provare:

my $date = join(",", @date, "");

cioè basta dirlo join che c'è un elemento in più.

NB: l'uscita di join è una singola stringa scalare, non un altro array, quindi $date sopra.


5 per risposta № 2

Per utilizzare la funzione giusta per il lavoro, è necessario utilizzare map per cambiare tutti gli elementi dell'array e concatenarli tutti insieme join

my $date = join("", map { "$_," } @date);

4 per risposta № 3

Sto cercando di aggiungere virgole agli elementi dell'array.

$_ = "$_," for @date;

Ma se stai cercando di creare una stringa anziché modificare l'array, puoi utilizzare quanto segue:

my $date = join "", map "$_,", @date;

Quanto sopra può essere velocizzato usando il seguente approccio intelligente ma ancora leggibile:

my $date = join ",", @date, "";

3 per risposta № 4

Per modificare tutti gli elementi di un array, carta geografica è uno strumento appropriato:

use warnings;
use strict;

my @date = qw(2020 02 20);
@date = map "$_,", @date;

use Data::Dumper;
print Dumper(@date);

__END__

$VAR1 = [
"2020,",
"02,",
"20,"
];