WA=/perl/temp@23 (ENV PARAM)
if (defined $ENV{'WA'}) {
$ENV{'AC'} = "$ENV{'WA'}/right";
}
eval(qq|use lib "$ENV{'AC'}/lib"|);
错误 - 在(eval 1)第1行的字符串中可能无意中插入@ 23。
我尝试了以下解决方案,但没有一个能提供很大的帮助。
尝试1:没有工作
$ENV{'WA'} =~ s/(^.*)@(.*)/$1\@$2/;
if (defined $ENV{'WA'}) {
$ENV{'AC'} = "$ENV{'WA'}/right";
}
eval(qq|use lib "$ENV{'AC'}/lib"|);
我还看到了另外一个问题。 当它工作一次..没有线索为什么以及如何工作,但lib没有添加到@INC路径。
尝试2:没有工作 - 我在帖子中看到\ x40代表@
$ENV{'WA'} =~ s/(^.*)@(.*)/$1\x40$2/;
if (defined $ENV{'WA'}) {
$ENV{'AC'} = "$ENV{'WA'}/right";
}
eval(qq|use lib "$ENV{'AC'}/lib"|);
尝试3:下一个错误
$ENV{'WA'} =~ s/(^.*)(@)(.*)/$1\@$3/;
if (defined $ENV{'WA'}) {
$ENV{'AC'} = "$ENV{'WA'}/right";
}
my $str = $ENV{'AC'};
eval(qq|use lib "$str/lib"|);
use module
错误:无法在@INC中找到模块 至少我现在没有意外插入@
有人可以就如何解决此问题给我一些指示。
答案 0 :(得分:2)
为什么需要字符串eval?
if(!TextUtils.isEmpty(display_name) && !TextUtils.isEmpty(email) &&
!TextUtils.isEmpty(password)){
mRegProgress.setTitle("Registering User");
mRegProgress.setMessage("Please wait....");
mRegProgress.setCanceledOnTouchOutside(false);
mRegProgress.show();
register_user(display_name, email, password);
// This is where you reset your text inputs and other bits and pieces.
// Start your logic to validate the input here
if (mDisplayName.getEditText().getText().toString().length() == 0){
.../...
}else{
// Put your logic here if there is no input.
或者,如果您只想设置@INC,如果定义了AC:
BEGIN {
if (defined $ENV{WA}) {
$ENV{AC} = "$ENV{WA}/right";
}
}
use lib "$ENV{AC}/lib";
答案 1 :(得分:1)
use lib
defined($ENV{WA}) ? "$ENV{WA}/right/lib"
: defined($ENV{AC}) ? "$ENV{AC}/lib"
: ();
或
use lib
defined($ENV{WA}) ? "$ENV{WA}/right/lib" : (),
defined($ENV{AC}) ? "$ENV{AC}/lib" : ();