🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.tcl
6 messages
6 total messages Started by T Fri, 01 Feb 2008 17:20
Jak sobie z tym radzicie?
#497
Author: T
Date: Fri, 01 Feb 2008 17:20
14 lines
436 bytes
Prosty przykład:

puts [exec abc]

Problem powstanie gdy "abc" zwróci coś z [] itp.
Można oczywiście przelecieć output regsubem czy czymś podobnym ale tego
zdecydowanie chciałbym uniknąć ze względu na słabą wydajność.

Przypuszczam, że rozwiązanie tego problemu może być trywialne, ale nic
nie przychodzi mi na myśl.

Może ktoś z Was juz to przerabiał i znalazł dobre rozwiązanie?

--
http://tomasz.insane.pl
Re: Jak sobie z tym radzicie?
#498
Author: "Stachu 'Dozzie'
Date: Fri, 01 Feb 2008 16:28
26 lines
668 bytes
On 01.02.2008, T <t@invalid.invalid> wrote:
> Prosty przyk³ad:
>
> puts [exec abc]
>
> Problem powstanie gdy "abc" zwróci co¶ z [] itp.

Naprawdê? To mój tclsh jeszcze o tym nie wie.
#v+
[dozzie@dynamit dozzie]$ tclsh <<<'puts [exec echo {aaa[]bbb}]'
aaa[]bbb
[dozzie@dynamit dozzie]$
#v-

> Mo¿na oczywi¶cie przelecieæ output regsubem czy czym¶ podobnym ale tego
> zdecydowanie chcia³bym unikn±æ ze wzglêdu na s³ab± wydajno¶æ.
>
> Przypuszczam, ¿e rozwi±zanie tego problemu mo¿e byæ trywialne, ale nic
> nie przychodzi mi na my¶l.
>
> Mo¿e kto¶ z Was juz to przerabia³ i znalaz³ dobre rozwi±zanie?

B³±d masz gdzie¶ indziej.

--
Secunia non olet.
Stanislaw Klekot
Re: Jak sobie z tym radzicie?
#500
Author: "Stachu 'Dozzie'
Date: Fri, 01 Feb 2008 17:23
32 lines
817 bytes
On 01.02.2008, T <t@invalid.invalid> wrote:
> Stachu 'Dozzie' K. pisze:
>
>>> puts [exec abc]
>>>
>>> Problem powstanie gdy "abc" zwróci co¶ z [] itp.
>>
>> Naprawdê? To mój tclsh jeszcze o tym nie wie. #v+
>> [dozzie@dynamit dozzie]$ tclsh <<<'puts [exec echo {aaa[]bbb}]' aaa[]bbb
>> [dozzie@dynamit dozzie]$
>> #v-
>
> Przecie¿ poda³em inny przyk³ad, bez parametrów.

A co to ma do rzeczy? Zawsze wydawa³o mi siê, ¿e do pisania programów
trzeba rozumieæ, co siê robi... Ale niech bêdzie, ¿e to mo¿e byæ
istotne.

#v+
[dozzie@dynamit dozzie]$ cat > blah.sh
#!/bin/sh
echo 'aaa[]bbb'
[dozzie@dynamit dozzie]$ chmod a+x blah.sh
[dozzie@dynamit dozzie]$ ./blah.sh
aaa[]bbb
[dozzie@dynamit dozzie]$ tclsh <<<'puts [exec ./blah.sh]'
aaa[]bbb
[dozzie@dynamit dozzie]$
#v-

--
Secunia non olet.
Stanislaw Klekot
Re: Jak sobie z tym radzicie?
#499
Author: T
Date: Fri, 01 Feb 2008 18:10
14 lines
349 bytes
Stachu 'Dozzie' K. pisze:

>> puts [exec abc]
>>
>> Problem powstanie gdy "abc" zwróci coś z [] itp.
>
> Naprawdę? To mój tclsh jeszcze o tym nie wie. #v+
> [dozzie@dynamit dozzie]$ tclsh <<<'puts [exec echo {aaa[]bbb}]' aaa[]bbb
> [dozzie@dynamit dozzie]$
> #v-

Przecież podałem inny przykład, bez parametrów.

--
http://tomasz.insane.pl
Re: Jak sobie z tym radzicie?
#501
Author: ZB
Date: Fri, 01 Feb 2008 18:19
24 lines
507 bytes
Dnia 01.02.2008 Stachu 'Dozzie' K. napisa³/a:

>> Prosty przyk³ad:
>>
>> puts [exec abc]
>>
>> Problem powstanie gdy "abc" zwróci co¶ z [] itp.
>
> Naprawdê? To mój tclsh jeszcze o tym nie wie.
> #v+
> [dozzie@dynamit dozzie]$ tclsh <<<'puts [exec echo {aaa[]bbb}]'
> aaa[]bbb
> [dozzie@dynamit dozzie]$
> #v-

Byæ mo¿e Koledze chodzi o sytuacje bardziej specyficzne, np.:

  puts [exec echo [info body]]

Wtedy mo¿e co¶ takiego wystarczy? Przyk³ad dla Tcl 8.5:

  puts [exec {*}{echo [info body]}]

--
ZB
Re: Jak sobie z tym radzicie?
#502
Author: Artur
Date: Sat, 02 Feb 2008 02:26
25 lines
681 bytes
On 1 Feb., 17:20, T <t...@invalid.invalid> wrote:
> Prosty przyk³ad:
>
> puts [exec abc]
>
> Problem powstanie gdy "abc" zwróci co¶ z [] itp.
> Mo¿na oczywi¶cie przelecieæ output regsubem czy czym¶ podobnym ale tego
> zdecydowanie chcia³bym unikn±æ ze wzglêdu na s³ab± wydajno¶æ.
>
W Tcl substytucja jest dokonywana tylko jeden raz. Czyli tylko na
pierwszym poziomie (to co widaæ).
dlatego nie ma problemu je¶li  [exec abc] zwróci jekie¶  [] lub $.

Jakby siê chcia³o wykonaæ nastêpnej substytucji to trzeba by by³o
napisaæ

puts [subst [exec abc]]
albo
puts [eval [exec abc]]

Opisuje to dobrze http://wiki.tcl.tk/3205

Artur
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads