Mi piacerebbe riorganizzare un timestamp con un'espressione regolare Perl con il minor numero possibile di codice. Il formato originale della data e ora è la seguente:Riorganizzazione di un timestamp con un'espressione regolare Perl
2011/12/29 20:19:45
Tutto quello che devi fare è convertirlo in modo che l'anno nella parte anteriore invece viene dopo il mese/data come segue:
12/29/2011 20:19:45
Sono stato in grado di raggiungere questo risultato con le 3 linee di codice qui sotto. Mi sto solo chiedendo se c'è un modo per farlo con meno codice. In particolare, ho cercato di eliminare la linea di mezzo salvando $ 1 in una variabile intermedia e specificando $ 1 dalla prima sostituzione direttamente nella regex per la seconda sostituzione, ma questo ha provocato l'errore: "Uso del valore non inizializzato $ 1 nella concatenazione (.) o stringa. "
Se la seconda linea non può essere eliminata, sembra che non si possa ottenere neanche una riga?
#my $ts = '2011/12/29 20:19:45'; #input to a subroutine
$ts =~ s/^(\d{4})\///;
my $year = $1;
$ts =~ s/ /\/$year /;
Se hai intenzione di scollegare questa domanda, ti preghiamo di spiegarne il motivo. Questo è il modo SO, e se sei qualcuno di comp.lang.perl.misc che ho offeso, mi dispiace, ma qui abbiamo una cultura diversa, e se non ti piace, torna a clpm. Oppure non vedi l'ironia di Perl "C'è più di un modo per farlo", ma clpm "C'è solo un modo per usenet" –
+1 sul commento di George. Si prega di non down-mod senza una spiegazione. Questo non è utile a nessuno. – AWT