"Michael Schmidt" <m.schmidt@xxxxxxxx> writes:
Hvis du kan nøjes med a-z eller A-Z kan perl:
perl -le '$n = pop(); $ext = "aaa"; print "Fast gentagen tekst her
", $ext++ for 1 .. $n' 30
[...]
Tæt på, men ikke helt nok.
Nå, så kan jeg ikke lige gøre det på en linje:
#!/usr/bin/perl -l
$lines = shift;
$lines ||= 10;
sub make_inc {
my @order = @_;
my %index;
my $i = 0;
$index{$_} = $i++ for @order;
return sub {
my @string = reverse split //, $_[0];
for (@string) {
$_ = @order[ ($index{$_} + 1) % scalar(@order) ];
last unless $_ eq $order[0];
}
return join "", reverse @string;
}
}
my $inc = make_inc(a .. e, A .. E, 1 ..4);
$text = "aaaa";
for (1 .. $lines) {
print "foo: $text";
$text = &$inc($text);
}
__END__
Du stiller på hvilke tegn den bruger i linjen:
my $inc = make_inc(a .. e, A .. E, 1 ..4);
make_inc() er en funktion der tager en liste af tegn og genererer en
passende inc()-funktion. Hvis der er et tegn der optræder flere gange
i listen er resultatet udefineret.