小编use*_*991的帖子

在Tcl中使用名称模式的tar不起作用

当我尝试在tcl中运行此命令时:

tar -zcvf input.scs__pmos.sdevv.tar.gz input.scs*
Run Code Online (Sandbox Code Playgroud)

我收到这条消息:

/bin/tar: input.scs*: Cannot stat: No such file or directory
/bin/tar: Error exit delayed from previous errors

child process exited abnormally
while executing
Run Code Online (Sandbox Code Playgroud)

但是,当我在Perl/shell中运行时,我得到:

perl -e 'system("tar -zcvf input.scs__pmos.sdevv.tar.gz input.scs*")'
Run Code Online (Sandbox Code Playgroud)

我明白了:

input.scs
input.scs~
Run Code Online (Sandbox Code Playgroud)

为什么Tcl造成这种情况?从LINUX Shell运行产生相同的结果.我使用Tcl 8.5

tcl exec pattern-matching

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

如何在一个带有2个变量的Ruby中循环

在Tcl中,如果您有一个包含偶数元素的列表,则可以一次循环两个元素.看到这段代码:

foreach { a b } [ list 1 2 3 4 ] {
    puts "${a} ${b}"
}
Run Code Online (Sandbox Code Playgroud)

将输出:

1 2
3 4
Run Code Online (Sandbox Code Playgroud)

如何用Ruby获得相同的行为?

ruby arrays for-loop tcl

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

Tcl 8.4数组键设置不能接受内联函数调用

在其他动态类型,交错语言(Ruby,PERL ...)中,可以将哈希中的键定义为函数调用的内联.例如(在Ruby中:

a[ foo(1) ] = bar
Run Code Online (Sandbox Code Playgroud)

我试图在Tcl 8.4中做同样的事情,但失败了,请参阅下面的tclsh日志:

% proc add1 { x } { expr {$x + 1 } }
% array set p {}
% set p( [add1 1]) 0
wrong # args: should be "set varName ?newValue?"
Run Code Online (Sandbox Code Playgroud)

不用说,我将一个变量分配给add1 1的输出,并使用变量值,它确实有效:

% set a [add1 1]
2
% set p($a) 0
0
Run Code Online (Sandbox Code Playgroud)

毫无疑问,这是一个风格问题,但我喜欢内联函数,而不是使用中间变量.有什么建议?

arrays tcl

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

正则表达式中的贪婪运算符在Tcl 8.5中不起作用

看到这个简单的正则表达式代码:

puts [ regexp -inline {^\-\-\S+?=\S+} "--tox=9.0" ]
Run Code Online (Sandbox Code Playgroud)

输出是:

 >--tox=9
Run Code Online (Sandbox Code Playgroud)

似乎第二个\ S +非贪婪!只有1个字符匹配
在PERL中,可以看到结果如我所料,见1行输出:

perl -e '"--tox=9.0" =~/(^\-\-\S+?=\S+)/ ; print "${1}\n"'
--tox=9.0
Run Code Online (Sandbox Code Playgroud)

如何在Tcl中获取Perl行为?

regex perl tcl regex-greedy

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

从Tcl中的相对路径获取绝对路径

假设我有一个文件,命名为./ko
我想要它的完整路径,可以(例如)/foo/bar/ko
在Perl中,只有一个

File::Spec->rel2abs("./ko")
Run Code Online (Sandbox Code Playgroud)

在Ruby中,它是:

File.expand_path("./ko")
Run Code Online (Sandbox Code Playgroud)

怎么在Tcl中完成?

file tcl filepath

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

TCL中的global和::有什么区别?

我正在使用 EDA 软件。它要求我依赖全局变量。假设我有一个进程,我正在寻找一个全局变量 CCK_FOO。我有2个选择:

  1. global CCK_FOO在代码中使用。
  2. 使用::CCK_FOO

就“管理水平”而言,这些看起来是相同的。这两种方法是否有“幕后”的优点和缺点?我实际上更喜欢使用::,因为它可以最大限度地减少意外覆盖的可能性。

tcl

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

Ruby Hash类的方法has_key?vs方法成员?

Ruby Hash的两种方法之间有什么区别,还是只有"有多种方法可以做到"?
我看不出两者之间有任何可衡量的差异.
谢谢,

ruby methods hash

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

编程与LISP表现差异

有人告诉我,在lisp中,在制作变量作用域时,let速度比prog(但prog有更多的灵活性)要快.我的问题是:为什么?我的意思是,有一些时候使用prog更容易,但是,除了经验测试,我不知道如何猜测效果.是在分配内存时?是执行吗?循环时它会变得更多吗?我不知道实现差异的具体细节.

lisp scope let

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

类切片中的Python列表不起作用

我过去一直在使用Python,把它放在一边,现在我很高兴回来.我试图访问列表中的前两个元素,但我不断得到第一个元素,而不是第二个元素.

以下是来自Python shell.看来,当我使用的[i:j]时候j=i+1,我只是第一个元素.这是正确的行为吗?

>>> p=['ho','he','hoo']
>>> p
['ho', 'he', 'hoo']
>>> p[0:1]
['ho']
>>> p[1:0]
[]
>>> p[0:1]
['ho']
>>> p[1]
'he'
>>> p[0:3]
['ho', 'he', 'hoo']
>>> p[0:2]
['ho', 'he']
 >>> p[0:3]
['ho', 'he', 'hoo']
>>> p[1:2]
['he']
Run Code Online (Sandbox Code Playgroud)

我使用的Python版本是:

Python 3.2(r32:88445,2011年2月21日,21:11:06)[GCC 4.6.0 20110212(Red Hat 4.6.0-0.7)]在linux2上

Linux是Centos,内核是

Linux Fedora 2.6.41.4-1.fc15.x86_64#1

python list slice

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

在Ruby中相当于chmod + x

在Linux中,只需输入以下内容即可“简单”地将可执行文件添加到文件中:

chmod +x <fname>
Run Code Online (Sandbox Code Playgroud)

但是,我在Ruby的宝石中找不到容易的东西。当然,可以进行系统调用,即

system( 'chmod +x' << fname )
Run Code Online (Sandbox Code Playgroud)

但是,我正在寻找更“优雅”的东西。

我正在使用Ruby 1.8.7。

ruby linux file-permissions ruby-1.8.7

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