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 № 1Provare:
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,"
];