小编Tho*_*iol的帖子

在使用$ variable和$ {variable}之间在正则表达式中传递变量时,Perl有什么区别

我正在审查一些用Perl编写的ClearCase触发器.我注意到在一些正则表达式中,变量既可以直接传递,也可以用大括号中的名称传递.

例如,我在触发器中有以下代码行:

if ($baseline !~ /^${component}_(|.*_)$phase\.\d+(|[a-z]|-\d+|${automateddigit})$/ &&
        $baseline !~ /^${project_root}_$phase\.\d+(|[a-z]|-\d+|${automateddigit})$/)
Run Code Online (Sandbox Code Playgroud)

$component,$phase,$automateddigit,$project_root都是变数.

为什么有些像正则表达式$variable一样传递${variable}了?

它是否来自它们的初始化方式?

以下是初始化它们的代码行:

($project = $ENV{CLEARCASE_PROJECT}) =~ s/\@.*$//;
($component = $ENV{CLEARCASE_COMPONENT}) =~ s/\@.*$//;

($project_root, $phase) = ($project =~ /^(.*)_(R\d+.*)$/);

exit(0) if (! $phase);

$phase .= ".0" if ($phase =~ /^R\d+$/);

$automateddigit = '';

$istream = `cleartool desc -fmt "%[istream]p" project:$ENV{CLEARCASE_PROJECT}`;

$componentlist = `cleartool desc -fmt "%[components]Cp" stream:$ENV{CLEARCASE_STREAM}`;
$componentsnbr = split(',', $componentlist);

if ($componentsnbr > 1) {
    $automateddigit .= …
Run Code Online (Sandbox Code Playgroud)

regex syntax perl triggers clearcase

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

如何在Perforce中快速查找/删除所有空的更改列表?

我想知道在尝试删除已提交的更改列表时可能有什么意义,因为提交的更改列表不应该为空.

但后来我正在使用教程库,并在整个分支上使用obliterate命令,我可以看到有一种情况,你可以最终得到空的已提交的更改列表(需要使用-f标志删除).

但是,我不知道如何使用命令行找到它们,因为我不知道如何查找没有与之关联的文件的更改列表.

有一个简单的方法吗?

谢谢,

托马斯

perforce administration changelist

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

Perforce中的分支规范是什么?

在我看来,在提交集成后,保持Perforce中的"分支"对象可能不是完全必要的.

即"真正的"分支,实际上是一个文件夹路径,即使您删除为执行集成而创建的分支对象,文件夹路径仍然有效,并且此路径中的所有文件仍然存在(重新启动版本控制)从#1等...).

让我感到困惑的是,当我尝试编辑分支(对象)名称时,它会创建一个新分支,它是前一个分支的新分支.但如果我删除前一个,似乎没有造成任何伤害(乍一看).

Perforce中的分支对象实际上只是一个方便的工具机制,可以随意销毁和重新创建,只要它描述的映射保持相同?

托马斯

perforce branch administration perforce-branch-spec

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

AutoHotKey:如何禁用Skype热键并使键盘正常运行

Skype HotKeys真的很烦人,因为它们无法从Skype本身禁用.最令人讨厌的是Ctrl+ R,如果选择了联系人,则会与您的任何联系人进行Skype通话.最近由Ctrl+ Alt+ 取代了R.

http://community.skype.com/t5/Windows-desktop-client/Disable-CTRL-R-on-windows/td-p/2877763

不幸的是,在我看来,我得AltGr+ R作为"è"字符的映射键(使用microsoft keybord creator).因此,在我的所有应用程序中,我可以使用美式键盘快乐地用法语写作,一直使用AltGr+ r作为我的"è"角色.现在除了Skype之外.

阅读上面的链接,我创建了一个AutoKey脚本,以禁用Skype的热键:

#IfWinActive, ahk_exe Skype.exe ; utilizes this script for Skype only
!^r:: ; replace [ctrl][alt][r] with nothing
#If     ; closes IfWinActive condition, needed if more code comes after this
Run Code Online (Sandbox Code Playgroud)

但是,虽然这会禁用Skype热键,但它会阻止我在Skype讨论中正常输入"è"字符.这么好,但不是最好的,因为我的打字现在在Skype中被破坏了.

我尝试了其他选择,但无济于事:

#IfWinActive, ahk_exe Skype.exe ; utilizes this script for Skype only
!^r:: 
Send è  
return
#If     ; closes IfWinActive condition, needed if more code …
Run Code Online (Sandbox Code Playgroud)

autohotkey skype

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

您对视图/分支机构的Perforce实践是什么?

我是Perforce的新手.

您会在视图/分支方面考虑P4最佳实践.

你会创建一个可以访问许多分支的视图,还是会创建一个视图/分支?

我不确定Perforce中的视图/劣化空间之间的切换是否容易.

谢谢,

托马斯

perforce branch perforce-client-spec

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

如何防止人们在Perforce中编辑其他工作区选项?

我是Perforce的新手.我们当前的服务器似乎存在配置错误,因为任何人都可以更改其他人的工作区选项.

有谁知道如何快速解决这个问题?

谢谢,

托马斯

workspace perforce administration

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