2010-10-15 8 views

Odpowiedz

46

Jest podobna skrótowym w Perlu na to:

$a = 1; 
print "@{[$a + 1]}" 

To działa, ponieważ [] tworzy odwołanie do tablicy zawierającej jeden element (wynik obliczeń), a następnie @{} dereferences tablicę, która wewnętrzna interpolacja ciągów drukuje kolejno każdy element tablicy. Ponieważ jest tylko jeden, po prostu wypisuje jeden element.

+3

Istnieje jeszcze jedna opcja '" $ {\\ ($ a + 1)} "' ale ja preferuję dawną ze względu na czytelność. –

+2

Nie sądzę, że musisz uciec przed odwrotnym ukośnikiem. Próbowałem tego i działa: '' $ {\ ($ a + 1)} '' –

+1

@ Hynek-Pichi-Vychodil 'print" $ {\\ (Cwd :: cwd)} ";' get'SCALAR (0x28b7124) ',' print "$ {\ (Cwd :: cwd)}"; 'get'C:/Users/Administrator/IdeaProjects/untitled2' dla mnie – BaiJiFeiLong

9

Możesz użyć sztuczki @{[ EXPRESSION ]}, o której wspominał Greg Hewgill.

Istnieje również moduł Interpolation, który umożliwia wykonywanie dowolnych transformacji wartości, które interpolujesz (takich jak kodowanie encji HTML), oprócz oceny wyrażeń.

+0

+1 kinda schludny, nawet jeśli jest trochę niezgrabny i używa krawatów . – Axeman

+0

@Axeman, co jest nie tak z krawatami? Po prostu ciekawy. – srchulo

Powiązane problemy