http://www.perlmonks.org?node_id=11159529


in reply to Re: CGI::Carp sometimes fails
in thread CGI::Carp sometimes fails

Back from eating outside so no longer on my mobile 😊

#!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); use strict; use warnings; use lib ( "$ENV{'DOCUMENT_ROOT'}/../lib", "$ENV{'DOCUMENT_ROOT'}/../.. +/prod/lib" ); use Bod::CRM; use Site::Utils; use Data::Dumper; print "Content-type: text/plain\n\n"; print Dumper $file{'receipt', 'file'}; exit;

This gives me a 500 error which is not picked up by CGI::Carp

But - I've tried printing out to a file and $file{'receipt', 'file'} contains the contents of a JPEG image file. Can die and print not handle some encoded characters such as those in an image file?

I am trying to debug some code that handles file uploads from a webpage and came across this strange behaviour of die working in some places and not others. So I created a simple example to demonstrate it. But it seems it's an encoding issue that is something I am getting everywhere from .htaccess files to blog editing since moving servers 😒

Replies are listed 'Best First'.
Re^3: CGI::Carp sometimes fails
by Danny (Hermit) on May 18, 2024 at 19:21 UTC
    contains the contents of a JPEG image file.

    I suppose one approach to try and narrow it down would be divide and conquer the contents of $file{'receipt', 'file'}. Split it in half and check both halves. Split the bad half again, etc.

    You said you tried printing the contents to a file. I assume that was successful?

    EDIT: Or instead of divide and conquer maybe try something like:

    my $len = length $str; for(my $i = 1; $i <= $len; $i++) { print substr($str, 0, $i) }