iniの変換
id:tetsuro_shida:20060425:1145974366より。私ならこう書くというのを書いてみました。
#!/usr/bin/perl use strict; use warnings; open my $source, '<', 'source.ini' or die "$!\n"; open my $dest, '>', 'dest.ini' or die "$!\n"; my $sect; my @data; while (<$source>) { chomp; next if /^\s*;/; next if /^\s*$/; if (/^\s*(\[.+\])\s*$/) { $sect = $1; } elsif (/^\s*(.*)\s*=\s*([^;]*)\s*;?.*$/) { push @data, "$sect$1=$2"; } } print "$_\n" foreach sort @data;
んー、elsif
の部分が不恰好。