あみだくじ
Posted feedbacks - Perl
ひねりなし
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | use strict;
use warnings;
sub swap {
@_[0, 1] = @_[1, 0];
}
sub amida {
my $str = shift;
my @lines = split /\n/, $str;
my @header = split //, shift @lines;
print join '', @header, "\n";
for (@lines) {
print $_, "\n";
while (/-/g) {
swap($header[pos() - 2], $header[pos]);
}
}
print join '', @header, "\n";
}
my $data = do { local $/; <DATA> };
amida($data);
__DATA__
A B C D E
| | |-| |
|-| | |-|
| |-| |-|
|-| |-| |
|-| | | |
|
短かさと, 正規表現の小手先にこだわりました. 標準入力とかから, アミダクジを与えて下さい.
1 2 3 | $_=<>;print;while($b=$a=<>){print$a;chomp$a;$i=1;$a=~s/(-|\|)/$1eq'-'?' ':'(.)'
/eg;$b=~s/(\|-\||\|)/$1eq'|'?'$'.$i++:'$'.++$i.' $'.($i++ -1)/eg;eval"s/$a/$b/"
}print
|


greentea #4476() Rating4/6=0.67
[ reply ]