[ic] Problems with calling [userdb] within embedded Perl

Stefan Hornburg racke at linuxia.de
Fri Dec 9 10:38:55 EST 2005


one of my customers has a complex login procedure. Therefore I'm doing it in
embedded Perl within the login profile.

All that worked without problems until the customer wants to save and restore
the cart.

Now login is no longer possible for users with saved carts:

Bad structure in carts: Bad structure in carts: 'require' trapped by operation mask at (tag 
'perl') line 1. (in cleanup) Undefined subroutine &main:: called at /usr/lib/perl/5.8/Safe.pm 
line 235.

Responsible for this problem is the reval in the Vend::UserDB::get_hash routine:

	eval {
		die errmsg("no name?")					unless $name;
		die errmsg("%s field not present to get %s", $field_name, $name) . "\n"
										unless $self->{PRESENT}->{$field_name};

		$s = $self->{DB}->field( $self->{USERNAME}, $field_name);

		if($s) {
			$self->{$name} = $ready->reval($s);
			die errmsg("Bad structure in %s: %s", $field_name, $@) if $@;
		else {
			$self->{$name} = {};

		die errmsg("eval failed?") . "\n"		unless ref $self->{$name};

Any suggestions are welcome.


More information about the interchange-users mailing list