use warnings; use strict; use HTML::TreeBuilder; use Clone qw(clone); use Data::SearchReplace ('sr'); my $newHTML = ['div', {class => 'ourobject'}, ['script', {language => 'JavaScript', type => 'text/JavaScript'}, 'embedLabTutorClient("VIEW", "URL", WWW, HHH)', ], ['noscript', ['object', {classid=>"CLSID:ReleaseCLSID", width=>'WWW', height=>'HHH', viewastext=>'1'}, ['param', {name=>'ViewSettingsUrl', value=>'URL'}], ['param', {name=>'ViewName', value=>'VIEW'}], ] ] ]; my $objUrl = 'somewhere/object.obj'; my $objView = 'erewhon'; my $objWidth = 255; my $objHeight = 127; my $copy = clone ($newHTML); sr {SEARCH => 'WWW', REPLACE => $objWidth}, $copy; sr {SEARCH => 'HHH', REPLACE => $objHeight}, $copy; sr {SEARCH => 'VIEW', REPLACE => $objView}, $copy; sr {SEARCH => 'URL', REPLACE => $objUrl}, $copy; my $element = HTML::Element->new ('root'); $element->push_content ($copy); print $element->as_HTML(undef, ' ', {}); ####