在Ruby中,如何读取程序/脚本本身内部的数据?

在Ruby中,如何读取程序/脚本本身内部的数据?,ruby,input,io,Ruby,Input,Io,在Perl中有一个\uuuuuuuuuuuuuuuuuuuuuuu标记,允许从程序/脚本文件本身加载输入。Ruby的等价物是什么?将数据放在\uuuu END\uuuu标记之后,用数据读入。read(返回字符串对象),在换行符(\n)上拆分字符串,然后用每一个或诸如此类的内容迭代生成的数组 #!/usr/bin/env ruby DATA.read.split(/\n/).each_with_index do |l,i| puts "line #{i+1}: #{l}" end

Perl
中有一个
\uuuuuuuuuuuuuuuuuuuuuuu
标记,允许从程序/脚本文件本身加载输入。Ruby的等价物是什么?

将数据放在
\uuuu END\uuuu
标记之后,用
数据读入。read
(返回
字符串
对象),在换行符(
\n
)上拆分字符串,然后用
每一个
或诸如此类的内容迭代生成的
数组

#!/usr/bin/env ruby

DATA.read.split(/\n/).each_with_index do |l,i|
        puts "line #{i+1}: #{l}"
end

__END__
red
orange
yellow
green
blue
indigo
violet
运行示例:

-bash> ruby -W /tmp/x.rb 
line 1: red
line 2: orange
line 3: yellow
line 4: green
line 5: blue
line 6: indigo
line 7: violet

将数据放在
\uuuu END\uuuuu
标记之后,用
数据读入。读取
(返回
字符串
对象),在换行符(
\n
)上拆分字符串,然后用
每个
或类似内容迭代生成的
数组

#!/usr/bin/env ruby

DATA.read.split(/\n/).each_with_index do |l,i|
        puts "line #{i+1}: #{l}"
end

__END__
red
orange
yellow
green
blue
indigo
violet
运行示例:

-bash> ruby -W /tmp/x.rb 
line 1: red
line 2: orange
line 3: yellow
line 4: green
line 5: blue
line 6: indigo
line 7: violet

有一个很好的讨论,有一个很好的讨论。