# lib/Acme/Mo.pm package Acme::Mo; use Modern::Perl; use Filter::Simple; sub hazmat { my $def = shift; $def =~ s/['"]//g; $def =~ s/(\w+)/'$1',/g; my $line = "has $def;"; return $line; } sub hasrw { my $def = shift; $def .= ' is rw'; return hazmat($def); } sub hasro { my $def = shift; $def .= ' is ro'; return hazmat($def); } sub hasrwdef100 { my $def = shift; $def .= ' is rw default 100'; return hazmat($def); } FILTER { s/^ro (.*);/hasro($1)/gem; }; FILTER { s/^rw (.*);/hasrw($1)/gem; }; FILTER { s/^haz (.*);/hazmat($1)/gem; }; FILTER { s/^rwdef100 (.*);/hasrwdef100($1)/gem; }; 1; __END__