В целом заголовок противоречивый, но в Perl 6 операция инкремента и декремента вполне применима и к строкам:
my $s = 'World'; $s++; say $s; # Worle $s--; say $s; # World
Если в строке были цифры, то начинается магия, и увеличивается именно число:
my $n = 'n48'; say $n.WHAT; # Str say ++$n; # n49 say ++$n; # n50 say ++$n; # n51
При этом новые разряды не добавляются, и в нашем примере при переполнении увеличивается предыдущая буква:
my $n = 'n98'; say ++$n; # n99 say ++$n; # o00 say ++$n; # o01
Наконец, еще она хитрая приятность. Если строка похожа на имя файла, то Perl 6 проявит сообразительность и попытается изменить имя, но не расширение файла. Это удобно применять при создании множества нумерованных файлов:
my $filename = 'data000.csv'; say $filename++ for 1..5;
Получается именно то, что ожидается интуитивно:
data000.csv data001.csv data002.csv data003.csv data004.csv
P. S. Инкремент строк работает и в Perl 5, но имена файлов там изменить не получится: все сломается и получится 1. Мало того, попытка декремента строки превратит ее в –1.
А можно как-то инкрементировать строку похожую на имя файла обычно, т.е. data000.csv -> data000.csw?