The chart (black picture) that is just above the text "Download PostScript file" is an interactive Java applet; notice that numbers in the legend (upper-right corner) change as you move your cursor across the chart.
Perhaps you could configure that applet to run locally, to achieve the same result after downloading the page? I am not sure what you intend, and this problem is not caused by Perl; you would get the same result with `wget` or `curl`.
Alternately, you could download the (non-interactive) chart as Encapsulated PostScript, and view it without an applet (although you will need the free Win32 Postscript programs GhostScript and GhostView.
This code works for me:
use strict;
use warnings;
use LWP;
my $base_url = 'http://dis.embl.de';
my $protein = 'MSSSTPFDPYALSEHDEERPQNVQSKSRTAELQAEIDDTVGIMRDNINKVAERGE
+RLTSI';
my $browser = LWP::UserAgent->new;
$browser->env_proxy();
my $response = $browser->post(
"$base_url/cgiDict.py", # That's the URL that the real form submits
+to.
[
key => 'process',
SP_entry => '',
sequence_string => $protein,
smooth_frame => '8',
peak_frame => '8',
join_frame => '4',
fold_coils => '1.20',
fold_rem465 => '1.20',
fold_hotloops => '1.40',
plot_title => '',
doApplet => 'true',
tango_PH => 7.40,
tango_T => 298.15,
tango_I => 0.02,
tango_TFE => 0.00,
fold_tango => 1.00,
]
);
die "Error: ", $response->status_line, "\n"
unless $response->is_success;
my $html = $response->content;
my ($eps) = ( $html =~ m{<a href="([^"]+)">Download PostScript file</a
+>} )
or die;
$response = $browser->get("$base_url/$eps");
die "Error: ", $response->status_line, "\n"
unless $response->is_success;
my $out_path = 'tmp.eps';
open my $out_fh, '>', $out_path
or die "Can't write-open out_file: $!";
print {$out_fh} $response->content;
close $out_fh;
system( 'C:/Program Files/Ghostgum/gsview/gsview32.exe', $out_path );