http://qs321.pair.com?node_id=633747


in reply to Sort n Create XML

TIMTOWTDI using split and RegExp

use strict; use warnings; my $data = do{local $/; <DATA>}; my ($header, $class, $footer) = $data =~ m/^(.*<\/header>)(.*)(<footer +>.*)$/is; my @data = split/(?=<class>)/, $class; my %hash; for my $data (@data){ if ($data =~ m/<strength>((?:(?!<\/strength>).)*)<\/strength>/si){ my $str = $1; if (defined($hash{$str})) { $hash{$str} .= $data }else{ $hash{ +$str} = $data} } } my @sort = sort{$a <=> $b} (keys %hash); print "$header\n"; print $hash{$_} for (@sort); print "$footer"; __DATA__ <?xml version="1.0" encoding="UTF-8"?> <system> <header></header> <class> <name>Eight</name> <strength>8</strength> </class> <class> <name>Four</name> <strength>4</strength> </class> <class> <name>Ten</name> <strength>10</strength> </class> <class> <name>One</name> <strength>1</strength> </class> <footer></footer> </system>

Regards,
Velusamy R.


eval"print uc\"\\c$_\""for split'','j)@,/6%@0%2,`e@3!-9v2)/@|6%,53!-9@2~j';