J'essaye de reformater la date pour MySQL. Ce Perl one-liner me donne ci-dessous un message d'erreur.Perl oneliner peut être un message multi-ligne en fuite ++
Je voudrais comprendre pourquoi il donne ce message d'erreur.
echo 'Dec 2 04:08:40 EST 2012' | perl -lane ' my @abbr = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
($amon, $mday, $hour,$tz, $year) =split('\s+',$_);
for (my $i = 0; $i < @abbr; $i++) {
next unless $abbr[$i] =~ /^$amon/;
$mon=$i;
}
$mon++;
print "$year-$mon-$mday $hour";
'
Message d'erreur
syntax error at -e line 3, near ") {"
(Might be a runaway multi-line ++ string starting on line 2)
syntax error at -e line 9, near ";}"
Execution of -e aborted due to compilation errors.
La coloration syntaxique de votre article ne vous aide-t-elle pas à détecter au moins un des problèmes? Mettez tout cela dans un script, cela ne sert à rien de le faire en ligne de commande. – Mat
Je l'ai utilisé dans une partie de shell scirpt, dans VIM il ne l'a pas montré – sfgroups
Utiliser 10 lignes (y compris une ligne vide) pour un 'one-liner' semble être une contradiction dans les termes. En Perl, vous pouvez choisir quel (s) caractère (s) utiliser pour les guillemets simples, alors écrivez: 'split (q {\ s +}, $ _);' pour éviter d'avoir des guillemets simples dans votre script Perl. –