use Win32::GUI; my $file = shift || die "no file specified\n"; open(file, $file) or die $!; $line=0; our %window; our %workspace; while ($x=) { $line++; chomp($x); $x=~s/\t//; $x=~s/\s+/ /g; @n=split(/\s/,$x); if ($n[0] eq "workspace") { die("syntax error! $file:$line error:workspace \`$n[1]' already defined\n") if (defined($workspace{$n[1]})); $workspace{$n[1]} = 1; } if ($n[0] eq "window") { die("fatal error! $file:$line error:window \`$n[1]' already defined\n") if (defined($window{$n[1]})); $window{$n[1]} = Win32::GUI::Window->new(-name => $n[1]) or die $@; $window{$n[1]}->Change(-minsize => [$n[2], $n[3]]); $window{$n[1]}->Show(); } if ($n[0] eq "title") { $title = substr($x, 6); # $window{$n[1]}->Change(-text => $title); # $window{$n[1]}->AddLabel(-text => $title); } if ($n[0] eq "text") { } if ($n[0] eq "end") { if ($n[1] eq "workspace") { die("syntax error! $file:$line error:workspace \`$n[2]' not open\n") if (!defined($workspace{$n[2]})); undef($workspace{$n[2]}); } } } Win32::GUI::Dialog(); __END__; workspace bff window win1 100 100 title win1 window number 1 text 0 0 255 0 0 herro world end window win1 end workspace bff