#!/usr/bin/perl use warnings; use strict; warn "Before warn handler\n"; my $warnings; { local $SIG{__WARN__} = sub { $warnings .= join("",@_) }; my $var = "9nine"; warn "In warn handler\n"; print $var + 1,"\n"; warn "Towards end"; } warn "After warn handler\n"; print "Collected warnings:\n$warnings\n";