in caso di dubbio, use diagnostics;
$ perl -Mdiagnostics -le " splice @ARGV, -1 ,0 "
Modification of non-creatable array value attempted, subscript -1 at -e line 1 (#1)
(F) You tried to make an array value spring into existence, and the
subscript was probably negative, even counting from end of the array
backwards.
Uncaught exception from user code:
Modification of non-creatable array value attempted, subscript -1 at -e line 1.
at -e line 1.
$ perl -Mdiagnostics -le " splice @ARGV, -1 ,0 " argv now not empty
dubito che si desidera utilizzare offset negativi, penso che si desidera utilizzare di offset 0 e dimensioni dell'array meno uno (anche conosciuto come l'ultimo indice)
$ perl -le " print for splice @ARGV, 0, $#ARGV-1 " a b c
a
Ooops.$ # ARGV è l'ultimo indice, non $ # ARGV -1, quindi
$ perl -le " print for splice @ARGV, 0, $#ARGV " a b c
a
b
ma se si vuole ancora un po 'di aritmetica è possibile utilizzare @ARGV, causa nel contesto scalare propria la dimensione della matrice
$ perl -le " print for splice @ARGV, 0, @ARGV-1 " a b c
a
b
Vantaggio laterale dell'utilizzo di offset non negativi con giunzione? Non muore quando array è vuoto
$ perl -le " print for splice @ARGV, 0, 10 "
uso eccessivo di 'printf' lì quando' print' sarà sufficiente. – TLP
È il modo per capire la tua visione positiva in questo modo ?: il contenuto in '()' viene eseguito per primo, e poiché '. *' È avido, troverà l'ultimo '.' e tutti i' .' ' il regex incontra sul suo modo viene sostituito con nulla? –
@SandraSchlichting No, la regex troverà un periodo letterale, e l'anteprima confermerà che c'è almeno un periodo letterale da qualche parte più avanti. Quando l'asserzione fallisce, avrai trovato l'ultimo periodo. – TLP