plik testowy wejście linioweRuby: prosta linia poleceń z -pe nie działa
test
Command:
ruby -pe 'gsub(/t([a-z])s/){"d"+$1.capitalize}' test
spodziewam się dEt
wyjście, ale rzeczywista produkcja jest:
#<Enumerator:0x00000001c78520>
Nie mam pojęcia, co się stanie. Działa to tak, kiedy robię:
"test".gsub(/t([a-z])s/){"d"+$1.capitalize}
To powinno działać (zobacz ['Kernel # gsub'] (http://ruby-doc.org/core-1.9.3/Kernel.html#method-i-gsub)), ale Ruby ignoruje blok. Działa z niezablokowaną formą w wersji 1.9.3 iw każdej z wersją 1.8.7. –
Możesz użyć '$ _. Gsub! (...) {...}', aby w razie potrzeby zniszczyć uszkodzenie mózgu 'ruby -pe'. –
@muistooshort dlaczego ruby ignorują blok? Czy to błąd? – texasbruce