+ header("Vary"=>"*"); # content may ba based on unpredictable sources
+}
+
+sub last_modified($)
+{
+my($self)=@_;
+
+ return if !$packages_used_hash{$W->{"__PACKAGE__"}}{"_done"};
+ our %path_abs_disk_registered;
+ if (!$path_abs_disk_registered{$W->{"__PACKAGE__"}}++) {
+ for my $package_orig (@{$packages_used_array{$W->{"__PACKAGE__"}}}) {
+ local $_=$package_orig.".pm";
+ s{::}{/}g;
+ path_abs_disk "/$_","register"=>1;
+ }
+ }
+ my $mtime_newest;
+ for my $path_abs_disk (keys(%{$path_abs_disk_for_package{$W->{"__PACKAGE__"}}})) {
+###print STDERR "CHECK:$path_abs_disk\n";
+ my $mtime=(stat $path_abs_disk)[9];
+ do { cluck "No mtime for: $path_abs_disk"; next; } if !$mtime;
+ $mtime_newest=$mtime if !$mtime_newest || $mtime_newest<$mtime;
+ }
+ cluck "No mtime_newest found for the current W __PACKAGE__: ".$W->{"__PACKAGE__"}
+ if !$mtime_newest;
+ # "Vary" header is REQUIRED in this case:
+ header("Last-Modified"=>HTTP::Date::time2str($mtime_newest));
+ return 1;