Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re^2: mod_perl bareword error

by sflitman (Hermit)
on Aug 02, 2010 at 03:49 UTC ( #852396=note: print w/replies, xml ) Need Help??

in reply to Re: mod_perl bareword error
in thread mod_perl bareword error

If you think it can help your thought process:
.... 1102 $sender=~s/\b$P{username}(?!@)//ig; 1103 $sender=~s/\b$P{email}\b//ig if defined $P{email}; 1104 map { $sender=~s/\b$_\b//ig } grep { $aliases{$_} eq $P{ +username} } keys %aliases; 1105 $sender=~s/,\s*,/,/g; 1106 $sender=~s/,\s*$//; 1107 $sender||=$P{username}; ....
But I should point out that the error is for an eval, and line 1 of that eval, so it is really being emitted by ModPerl::Registry


Replies are listed 'Best First'.
Re^3: mod_perl bareword error
by ysth (Canon) on Aug 02, 2010 at 04:54 UTC
      Absolutely, here you go, with minor redaction due to some restrictions from my client:
      use strict; use vars qw/..../; use Archive::Zip qw/:ERROR_CODES/; use CGI; use Data::Alias; use Date::Calc qw/Day_of_Week Decode_Date_US Decode_Month/; use Date::Extract; use Digest::SHA qw/sha1_base64/; use File::Copy; use GDBM_File; use HTML::Defang; use HTML::Entities; use Image::Size; use LWP::MediaTypes qw(guess_media_type read_media_types); use MIME::Entity; use MIME::Base64; use Text::Metaphone; use Time::HiRes qw/time/; BEGIN { $|=1; .... %dispatch=( 'edit' => \&do_edit, 'save' => \&do_save, 'undo' => \&do_undo, 'prior' => \&do_prior, 'next' => \&do_next, 'read' => \&do_read, .... }; } $query=new CGI; %cookie=$query->cookie('app'); %P=(); for $key ($query->param) { $value=encode_entities($query->param($key),'\x80-\xFF'); $P{$key}=$value; } ....

        Shot in the dark, remove the most magical module you are using. In this case, comment out "use Data::Alias;" and any uses of it and see if the problem goes away or changes.


        The original error looked to me like a problem with out-of-sync quotes. And the only mention of "app" in your code is right after a quote character. You might try shifting some quotes around.

        - tye        

        What perl version is this?

        Shot in the dark: replace the use vars with our() declarations.

        Also, I know this isn't your script, but use warnings is even more important than use strict.

        A math joke: r = | |csc(θ)|+|sec(θ)|-||csc(θ)|-|sec(θ)|| |
        Online Fortune Cookie Search
        Office Space merchandise