Feeding a sub a filename via Cava::Pack::Resource fails

5 views
Skip to first unread message

aardvarkman

unread,
Jan 26, 2009, 3:06:08 AM1/26/09
to Cava Packager
Hello,

Feeding getConstants a filename via Cava::Pack::Resource fails. Am I
using it correctly? It can't read my string file at compile time.

thanks,

Ben

-------------------------------


use Cava::Pack;

Cava::Pack::SetResourcePath('C:/1_16_09Aardvark/res');
my $mystrings = Cava::Pack::Resource('config/strings_enu.txt');

BEGIN {
&getConstants($mystrings);

sub getConstants {
my $constantFile = $_[0];
open FILE, $constantFile;
while (<FILE>) {
if (/^\s*(\S+)\s*=\s*(.+?)\s*$/) {
my $label_name = $1;
my $UI_string = $2;
eval "use constant $label_name => '$UI_string';";
if ($@) { # This block executes if the evaluate fails
die $@;
}
}
}
close FILE;
}
}

aardvarkman

unread,
Jan 26, 2009, 3:39:13 AM1/26/09
to Cava Packager
Sorry, I've tried multiple things and the code snippet wasn't right.
Here's one that I think should work:

use Cava::Pack;

Cava::Pack::SetResourcePath('C:/1_16_09Aardvark/res');

BEGIN {
&getConstants();

sub getConstants {
my $mystrings = Cava::Pack::Resource('config/strings_enu.txt');
# my $constantFile = $_[0];
open FILE, $mystrings;

aardvarkman

unread,
Jan 27, 2009, 5:43:53 PM1/27/09
to Cava Packager
Okie Dokie. . . figured it out. Setting the resource outside of BEGIN
didn't work. This works:

use Cava::Pack;

BEGIN {

Cava::Pack::SetResourcePath('C:/1_16_09Aardvark/res');
my $stringfile = Cava::Pack::Resource('config/strings_enu.txt');
stdMsg("Loading $stringfile");

&getConstants($stringfile);

sub getConstants {
my $constantFile = $_[0];
open FILE, $constantFile;

###################

And this all works:


my $configdir = Cava::Pack::Resource('config');
my $options = get_config( "$configdir/config.txt", 'Application
configuration' );
my $renameitems = get_config( "$configdir/regex.txt", 'Start renamer
expressions' );
my $replaceitems = get_config( "$configdir/regex.txt", 'Start replacer
expressions' );


my $imagesdir = Cava::Pack::Resource('images');
my $saveicon = $mw->Photo( -file => "$imagesdir/save.gif" );
my $openicon = $mw->Photo( -file => "$imagesdir/open2.gif" );

###################

Thanks for the program.

Ben
Reply all
Reply to author
Forward
0 new messages