Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: =?UTF-8?Q?Arne_Vajh=C3=B8j?= Newsgroups: comp.os.vms Subject: Re: Text processing on VMS Date: Sun, 13 Oct 2024 20:14:21 -0400 Organization: A noiseless patient Spider Lines: 32 Message-ID: References: <8734l0t56u.fsf@lucy.meyer21c.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Mon, 14 Oct 2024 02:14:22 +0200 (CEST) Injection-Info: dont-email.me; posting-host="5e7f272000d10076fdabc61d313aabad"; logging-data="936876"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/fWCoNd7tkvHsIqvCIawmUISrX8r3ggdc=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:3M/nd0qzuAKwlLrqsBBRtk1szhk= Content-Language: en-US In-Reply-To: Bytes: 2201 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