Perl 跳过用户输入
我正在使用:Perl 跳过用户输入,perl,Perl,我正在使用: use Term::Prompt; use Term::ReadKey; 我有我的用户输入部分: my $value1 = prompt( 'n', 'Enter num1: ', '', '' ); my $value2 = prompt( 'x', 'Enter name1: ', '', '' ); my $value3 = prompt( 'n', 'Enter num2: ', '', '' ); my $value4 = prompt( 'n', 'Enter num
use Term::Prompt;
use Term::ReadKey;
我有我的用户输入部分:
my $value1 = prompt( 'n', 'Enter num1: ', '', '' );
my $value2 = prompt( 'x', 'Enter name1: ', '', '' );
my $value3 = prompt( 'n', 'Enter num2: ', '', '' );
my $value4 = prompt( 'n', 'Enter num3: ', '', '' );
my $value5 = prompt( 'x', 'Enter name2: ', '', '' );
我的问题是:
SELECT data1, data2, data3
FROM Table1
WHERE value1 = '$value1'
AND NOT EXISTS (
SELECT NULL
FROM Table2
WHERE value2 = '$value2')
AND NOT EXISTS (
SELECT NULL
FROM Table3
WHERE value3 = '$value3')
AND NOT EXISTS (
SELECT NULL
FROM Table4
WHERE value4 = '$value4')
我尝试使用诸如enter或esc之类的“按键”跳过输入,而是使用默认值,而不在提示中使用默认设置,因为我不希望用户看到默认值
如果这还不清楚,我希望是这样
因此,对于提示符3和4,我希望用户只需按enter键,让提示符使用默认值,然后跳过提示符
-或-
由于查询中不需要某些提示,是否有更好的方法来执行此操作?由于默认值为“”,它们的计算结果将为false,因此使用逻辑or运算符“| |”,如下所示:
my @defaults = ( ... a list of default values ... );
my $value1 = prompt( 'n', 'Enter num1: ', '', '' ) || $defaults[1];
my $value2 = prompt( 'x', 'Enter name1: ', '', '' ) || $defaults[2];
my $value3 = prompt( 'n', 'Enter num2: ', '', '' ) || $defaults[3];
my $value4 = prompt( 'n', 'Enter num3: ', '', '' ) || $defaults[4];
my $value5 = prompt( 'x', 'Enter name2: ', '', '' ) || $defaults[5];
如果提示返回默认的空字符串,它将计算OR的右侧,并返回所需的默认值。(1)您可以使用与代码中使用的默认值不同的“向用户显示”默认值,例如N/a
;(2) 您可能不应该在查询中包含那些不需要的部分(因此,如果$value4
没有值,您将省略,并且不存在(…=“$value4”)
查询部分)。