[ruby-core:71320] [Ruby trunk - Bug #10123] Named capture groups don't set local vars when matched using ~

From: josh.cheek@...
Date: 2015-11-03 23:33:39 UTC
List: ruby-core #71320
Issue #10123 has been updated by Josh Cheek.


Josh Cheek wrote:
> Broken when using `~`:
> 
> ~~~
> $ echo ' josh' | ruby -ne '~/(?<initial>\w)/ and puts initial'
> -e:1:in `<main>': undefined local variable or method `initial' for main:Object (NameError)
> ~~~
> 
> Working when using `=~ $_`:
> 
> ~~~
> $ echo ' josh' | ruby -ne '/(?<initial>\w)/ =~ $_ and puts initial'
> j
> ~~~


Similarly, these do not set the local variable.

~~~
$ echo ' josh' | ruby -ne '/(?<initial>\w)/ !~ $_ or puts initial'
$ echo ' josh' | ruby -ne '$_[/(?<initial>\w)/] and puts initial'
~~~

----------------------------------------
Bug #10123: Named capture groups don't set local vars when matched using ~
https://bugs.ruby-lang.org/issues/10123#change-54695

* Author: Josh Cheek
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
Broken when using `~`:

~~~
$ echo ' josh' | ruby -ne '~/(?<initial>\w)/ and puts initial'
-e:1:in `<main>': undefined local variable or method `initial' for main:Object (NameError)
~~~

Working when using `=~ $_`:

~~~
$ echo ' josh' | ruby -ne '/(?<initial>\w)/ =~ $_ and puts initial'
j
~~~



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next