小编thi*_*khy的帖子

无法在Windows平台中使用Perl列出包含空间的目录

为了在Windows中列出pathes,我写了下面的Perl函数(在StrawBerry运行时环境下执行).

sub listpath
{
   my $path = shift;
   my @list = glob "$path/*";
   #my @list = <$path/*>;
   my @pathes = grep {  -d and $_ ne "." and $_ ne ".." } @list;
}
Run Code Online (Sandbox Code Playgroud)

但它无法正确解析包含空间的目录,例如:

当我发出以下代码时:listpath("e:/ test/test1/test11/test111/test1111/test11111 - Copy");

该函数返回一个包含两个元素的数组:

1:e:/ test/test1/test11/test111/test1111/test11111 2: -

我想知道glob是否可以解析空间目录.非常感谢.

perl glob

9
推荐指数
1
解决办法
3994
查看次数

在C++中删除指针对象

我在开源项目X3C中读取了以下用于删除指针对象的代码.

//! Delete pointer object.
/*!
    \ingroup _GROUP_UTILFUNC
    \param p pointer object created using 'new'.
*/
template<class T>
void SafeDelete(T*& p)
{
    if (p != NULL)
        delete p;
    p = NULL;
    *(&p) = NULL;
}
Run Code Online (Sandbox Code Playgroud)

但我不知道这条线的意思:

*(&p) = NULL;
Run Code Online (Sandbox Code Playgroud)

在上面的行(p = NULL;)中,p被赋值为NULL.我认为它需要以另一种方式再次这样做.

c++ pointers delete-operator

7
推荐指数
1
解决办法
1407
查看次数

如何将深度学习应用于UI测试自动化?

深度学习适用于某些项目中的游戏,因此将其应用于UI测试自动化应该是有意义的.对这个想法有何评论?

testing automation artificial-intelligence deep-learning

7
推荐指数
1
解决办法
3001
查看次数

"我的"和"本地"之间的区别如何与符号引用相互作用?

以前我在"有效Perl编程"一书中阅读了相关内容,但并没有真正理解它.今天,我遇到了一个问题,如下面的代码.

my $vname = "a";
my @a = qw(1 2 3);
local @array = @$vname; 
foreach(@array) { print "$_\n"; };
Run Code Online (Sandbox Code Playgroud)

它什么都没输出.然后我修改了这一行:

local @a = qw(1 2 3);  
Run Code Online (Sandbox Code Playgroud)

刚用"本地"替换"我的",那么现在就可以了.所以我想弄清楚它们之间有什么区别.

perl

4
推荐指数
3
解决办法
3187
查看次数

"ls*"的输出不一致

只是混淆了命令"ls*"的输出.我在Ubuntu 11.10和Redhat Enterprise 6.3中测试了下面的场景,得到了相同的结果.

壳牌日志

$ uname -a
   Linux 2.6.32-279.19.1.el6.x86_64 #1 SMP Sat Nov 24 14:35:28 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
$ echo $0
   -bash
$ cd test
$ ls
$ ls *             *<== at first, no file/directory under current work directory*
ls: cannot access *: No such file or directory
$ mkdir abc        *<== create a new directory "abc"*
$ ls *             *<== output of "ls *" is empty but directory "abc" has been created.*
$ mkdir abcd …
Run Code Online (Sandbox Code Playgroud)

unix linux bash shell ls

4
推荐指数
3
解决办法
635
查看次数

为什么Win32互斥锁如此耗时

我一直在通过C/C++阅读Windows的书.在第215页的第8章中,作者比较了各种同步机制的性能.我发现互斥量表现不佳.当4个线程同时运行时,它会花费超过23秒来进行互斥锁同步.

为什么Win32互斥锁如此耗时?我们什么时候可以使用互斥锁?

PS:我在GitHub上发布了测试代码:https://gist.github.com/985198

谢谢你的回复.

c c++ windows synchronization mutex

2
推荐指数
2
解决办法
2493
查看次数

我怎样才能旅行用guid命名的目录?

今天,我编写了一个perl脚本,如下代码:

my @files = <./{FF35B8A6-985C-4644-87B1-3FE83D1A50B}/*>;
print @files;
Run Code Online (Sandbox Code Playgroud)

但它什么也没输出.当我用一般路径(如d:)更改guid路径时,它工作正常.为什么?perl可以支持用guid字符串命名的路径吗?

操作系统:Windows 7 32位
Perl版本:ActivePerl 5.12.3

perl guid path

2
推荐指数
1
解决办法
144
查看次数

为什么零宽度匹配正则表达式工作?

我写了一个Perl函数来替换JCL脚本中的作业名称.这里使用了零宽度匹配.

sub modify_jcl_jobname ()
{
    my ($jcl, $old, $new) = @_;

    $jcl =~ s/
         # The name must begin in column 3.
         ^(?<=\/\/)     

         # The first charater must be alphabetic or national.
        ($old)

         # The name must be followed by at leat on blank.
         # Append JCL keyword JOB 
        (?=\s+JOB)
       /$new/xmig; # Multi-lines, ignore case.

    return $jcl;
}
Run Code Online (Sandbox Code Playgroud)

但是这个功能直到我做了一个简单的修改才删除了前导符号"^"后才起作用.

  #before  ^(?<=\/\/) 

  #after    (?<=\/\/) 
Run Code Online (Sandbox Code Playgroud)

所以我想说明问题的原因.任何回复将不胜感激.谢谢.

regex perl mainframe jcl

2
推荐指数
1
解决办法
165
查看次数

如何复制前缀为' - '的文件?

我试图通过简单地发出"cp*/dst_dir"来复制目录下的所有文件,但Shell显示:

~/git$ cp * ~/dst_dir
cp: invalid option -- 'o'
Run Code Online (Sandbox Code Playgroud)

然后发出"ls -1"列出所有文件,发现罪魁祸首是一些带有前缀' - '的文件,如下所示.

   -count
   -sdds
   ...
Run Code Online (Sandbox Code Playgroud)

不知道这些文件是如何生成的,而且我还是找不到删除或移动这些"-xxx"文件的方法.

   ~/git$ rm "-count"
   rm: invalid option -- 'c'
   Try `rm ./-count' to remove the file `-count'.
   Try `rm --help' for more information.

   ~/git]$ mv \-count  /tmp
   mv: invalid option -- 'c'
   Try `mv --help' for more information.
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我的shell是RHEL 6.3上的TCSH,"tcsh --version"显示:

    ~/git]$ tcsh --version
    tcsh --version
      tcsh 6.17.00 (Astron) 2009-07-10 (x86_64-unknown-linux) options wide,nls,dl,al,kan,rh,color,filec
Run Code Online (Sandbox Code Playgroud)

任何人都有任何关于这个问题的线索.非常感谢您的帮助.

更新

谢谢大家.我刚检查手册,发现以下官方答案:

   To remove a file whose name starts …
Run Code Online (Sandbox Code Playgroud)

unix linux shell file

2
推荐指数
1
解决办法
946
查看次数

如何使用Perl在html中转换字符"%xx"

我打算从包含许多以"%xx"形式表示的unicode字符的网页中提取内容.当我使用Perl模块LWP获取网页时,使用Perl Regex自然处理这些unicode字符,如下所示.

my $html = "%20%26%40 ";
$html =~ s#%([0-9a-f]+)#\x{\1}#ig;
print "$html\n";
Run Code Online (Sandbox Code Playgroud)

但是上面的代码不起作用,它只输出"00".现在卡住......任何暗示都会受到赞赏.

谢谢,叶

regex unicode perl uri

1
推荐指数
1
解决办法
619
查看次数

如何使用REXX将作业日志保存到数据集中

我刚刚完成了检查SDSF.ST中数百个作业的任务,并将这些作业日志保存到指定的数据集中.我想我应该使用REXX自动执行此任务,但实际上并不熟悉该语言.在Google上搜索过后,我仍然无法找到可行的解决方案.

有人有这方面的经验吗?

automation mainframe rexx zos

1
推荐指数
1
解决办法
1984
查看次数