[Info-vax] Text processing on VMS

Arne Vajhøj arne at vajhoej.dk
Sun Oct 13 20:14:21 EDT 2024


On 10/13/2024 6:24 PM, Craig A. Berry wrote:
> On 10/13/24 2:26 PM, Arne Vajhøj wrote:
>> But in a relevant script language then it should be a one statement
>> problem (although in most cases splitting that one statement over
>> multiple lines is a good thing for readability).
>>
>> import java.nio.file.*
>>
>> Files.lines(Paths.get("login.com"))
>>       .filter(line -> line.contains("java"))
>>       .map(line -> line[2..12])
>>       .forEach(System.out::println)
>>
>> output pos 2..12 (pos is 0 based!) from all lines of login.com
>> that contains "java".
> 
> Opening an editor, typing all that in, running the java compiler, and
> then running the compiled program all seems like a lot of work to me
> when all you need to do is:
> 
> $ perl -nE "say substr($_, 2, 12) if $_ =~ m/java/i;" < login.com

It is not Java but Groovy, so compile is optional.

And groovysh does have an -e for evaluating code given in command line
(it is just rarely used).

But you are absolutely right: Perl code is shorter than Groovy code.

Arne




More information about the Info-vax mailing list