这段代码有效 - 它需要一个完整的txt文件路径数组并将它们剥离,以便在$exam_nums[$x]调用时返回文件名
for (0..$#exam_nums)
{
$exam_nums[$_] =~ s/\.txt$//; #remove extension
$exam_nums[$_] =~ s/$dir//g; #remove path
}
Run Code Online (Sandbox Code Playgroud)
当我尝试为单个变量执行此操作时,它不起作用.我正在调用一个子程序并向它发送一个礼物,但该变量在结尾处是空的.(它进入if语句块,因为其中的其他行运行正常.)这是代码:
打电话到子:
notify($_);
Run Code Online (Sandbox Code Playgroud)
该$_是一个foreach(@files)循环,它的工作原理
子:
sub notify
{
if(shift)
{
$ex_num = shift;
$ex_num =~ s/\.txt$//; #remove extension
$ex_num =~ s/$dir//g; #remove path
print $ex_num;
print "\nanything";
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试取出$正则表达式的"删除扩展"部分,但这没有帮助.
标题基本概括了所有内容.
如何查看在SQL Server 2008中创建存储过程的原始SQL?
这可能吗?我一直在网上寻找一些线索,但我要么缺少正确的白话,要么我只是寻找可以通过其他方式找到的东西.
我的基本问题是我在这里有一个SQL Server 2008数据库,有几百个存储过程,我想知道他们在做什么.我需要复制一个并稍微修改它然后使用它.
再次寻找你的帮助Jonathan Leffler!
我在Informix 7.3上创建一个表,需要一个时间戳字段,默认为today插入和更新.
如何为具有当前时间默认值的表定义日期/日期时间/时间戳列?
以下是简单日期字段的字段定义:
column upd_date date
comments ""
desc "Last update date"
heading "Last update date"
text "Last update date"
attributes
(
)
Run Code Online (Sandbox Code Playgroud)
模式文件中还有一些其他语法可以对默认值应该是什么进行评论:
column beg_date date{DEF: date academic session/subsession officially begins}
comments ""
desc "Beginning date."
heading "Beg Date"
text "Date - Begin"
attributes
(
)
Run Code Online (Sandbox Code Playgroud)
我不确定任何其他具有此功能的表格,我甚至不能100%确定它是否受支持,但如果有办法,我很乐意知道.
我在这个主题上找到的唯一好的领导就是这里
任何人有任何想法/解决方案?
datetime我在另一个表def中找到了一个列类型:
column beg_time datetime year to minute
comments ""
desc "Beginning date and time of …Run Code Online (Sandbox Code Playgroud) 我一直在使用MIME :: Lite一段时间,直到现在都没有问题.
我正在尝试附加.txt文件,但文件(发送后)内部没有内容.
我知道文件中有一些东西,因为我.txt在同一个脚本中创建文件.我知道文件的位置并且可以看到它的内容,但是当我告诉MIME::Lite附加.txt文件时,电子邮件只带有文件名,只有64个字节.
这MIME::Lite是我的脚本部分的代码:
$msg = new MIME::Lite(From => $from,To => $to,Subject => $subject,Data => "Data",Type => "multipart/mixed",);
$msg->attach(Type => 'TEXT', Data => @message);
$msg->attach(Type => 'TEXT', Path => $stat_file);
$msg->send();
Run Code Online (Sandbox Code Playgroud)
哪里$stat_file=/in/some/dir/cheese/txt/somefile.txt
除了第3行外,一切正常.它正确地找到并附加我指向的文件,但当它到达我的电子邮件时,它是一个.txt64字节的空白文件.
我已经尝试了这个代码的前3行中的每一行的几个变体,但不知道我错过了什么.
有人看到这个脚本会按照解释的那样执行的原因吗?
我看到很多"相关"问题出现了,但我没有看到回答这个具体情况.
在解析从SQL select语句生成的结果集的while/for循环期间,如果前一行包含相同的字段数据(无论是第1个字段还是第1个字段),防止下一行输出的最佳方法是什么?第x场)?
例如,如果两行是:
('EML-E','jsmith@mail.com','John','Smith')
('EML-E','jsmith2@mail.com','John','Smith')
Run Code Online (Sandbox Code Playgroud)
基于'EML-E'在两行中是否相同的事实,仅打印第一行的最佳方法是什么?
现在,我这样做:
处理完行后,设置dupecatch [0] = dupecatch [1]
while ($DBS->SQLFetch() == *PLibdata::RET_OK)
{
$s=0; #s = 1 to escape out of inside loop
while ($i != $array_len and $s==0)
{
$rowfetch = $DBS->{Row}->GetCharValue($array_col[$i]);
if($i==0){$dupecatch[1] = $rowfetch;} #dupecatch prevents duplicate primary key field entries
if($dupecatch[0] ne $dupecatch[1])
{
dosomething($rowfetch);
}
else{$s++;}
$i++;
}
$i=0;
$dupecatch[0]=$dupecatch[1];
}
Run Code Online (Sandbox Code Playgroud)问题: 为什么我不能将元素推入一个2d数组,该数组位于解析SQL结果集的while循环中?
我需要一些帮助,为什么会发生这种情况.数据存储到二维数组的方式可以通过多种方式完成,但出于我的目的,我需要使用push方法.
这里有一些有用的代码:
my @tt = (0,1,2,3);
my @t;
push (@t,\@tt);
print "[0][0]:".$t[0][0]."\n";
print "[0][1]:".$t[0][1]."\n";
print "[0][2]:".$t[0][2]."\n";
print "[0][3]:".$t[0][3]."\n";
@tt = (4,5,6,7);
push (@t,\@tt);
print "[1][0]:".$t[1][0]."\n";
print "[1][1]:".$t[1][1]."\n";
print "[1][2]:".$t[1][2]."\n";
print "[1][3]:".$t[1][3]."\n";
Run Code Online (Sandbox Code Playgroud)
输出是:
-------------------------
[0][0]:0
[0][1]:1
[0][2]:2
[0][3]:3
[1][0]:4
[1][1]:5
[1][2]:6
[1][3]:7
Run Code Online (Sandbox Code Playgroud)
我正在运行一些SQL来构建一个X包含列数的结果集.为了将数据存储到我的数组中,我想我可以使用与上面相同的语法:
while (@results=$sth->fetchrow_array())
{
push(@stu_pool,\@results);
}
Run Code Online (Sandbox Code Playgroud)
我测试了SQL并检查了结果集,所以问题与此无关.我还回到了长期的方法,这让我得到了我期望的最终结果.而不是使用push(@stu_pool,\@results);我在循环中使用此代码:
$stu_pool[$index][0] = $results[0];
$stu_pool[$index][1] = $results[1];
$stu_pool[$index][2] = $results[2];
$stu_pool[$index][3] = $results[3];
$stu_pool[$index][4] = $results[4];
$stu_pool[$index][5] = $results[5];
$stu_pool[$index][6] = $results[6];
$index++;
Run Code Online (Sandbox Code Playgroud)
那么是什么阻止我将元素推入这个数组呢?它适用于第一个示例,但是当我尝试打印出元素时,它们都是空白的.我正在使用的代码:
print "[0][0]:".$stu_pool[0][0]."\n"; …Run Code Online (Sandbox Code Playgroud)