Vordefinierte globale Variablen

Einige der vordefinierten globalen Variablen haben Synonyme, die über das Modul English verfügbar sind. Für jede dieser Variablen wird das englische Synonym angegeben.

Zur Verwendung des Moduls

require 'English'

Kurz gesagt

Ausnahmen

Variable English Enthält Initial Nur-Lese Zurückgesetzt durch
$! $ERROR_INFO Ausnahmeobjekt oder nil nil Ja Kernel#raise
$@ $ERROR_POSITION Array von Backtrace-Positionen oder nil nil Ja Kernel#raise

Abgeglichene Daten

Variable English Enthält Initial Nur-Lese Zurückgesetzt durch
$~ $LAST_MATCH_INFO MatchData-Objekt oder nil nil Nein Matcher-Methoden
$& $MATCH Abgeglichener Teilstring oder nil nil Nein Matcher-Methoden
$` $PRE_MATCH Teilstring links vom Treffer oder nil nil Nein Matcher-Methoden
$' $POST_MATCH Teilstring rechts vom Treffer oder nil nil Nein Matcher-Methoden
$+ $LAST_PAREN_MATCH Zuletzt abgeglichene Gruppe oder nil nil Nein Matcher-Methoden
$1 Zuerst abgeglichene Gruppe oder nil nil Ja Matcher-Methoden
$2 Zweite abgeglichene Gruppe oder nil nil Ja Matcher-Methoden
$n n-te abgeglichene Gruppe oder nil nil Ja Matcher-Methoden

Trennungen

Variable English Enthält Initial Nur-Lese Zurückgesetzt durch
$/, $-0 $INPUT_RECORD_SEPARATOR Eingabedatensatztrennung Neue Zeile Nein
$\ $OUTPUT_RECORD_SEPARATOR Ausgabedatensatztrennung nil Nein

Streams

Variable English Enthält Initial Nur-Lese Zurückgesetzt durch
$stdin Standard-Eingabestream STDIN Nein
$stdout Standard-Ausgabestream STDOUT Nein
$stderr Standard-Fehlerstrom STDERR Nein
$< $DEFAULT_INPUT Standardmäßige Standardeingabe ARGF Ja
$> $DEFAULT_OUTPUT Standardmäßige Standardausgabe STDOUT Nein
$. $INPUT_LINE_NUMBER, $NR Eingabeposition des zuletzt gelesenen Streams 0 Nein Bestimmte Lesemethoden
$_ $LAST_READ_LINE String aus dem zuletzt gelesenen Stream nil Nein Bestimmte Lesemethoden

Prozesse

Variable English Enthält Initial Nur-Lese Zurückgesetzt durch
$0, $PROGRAM_NAME Programmname Programmname Nein
$* $ARGV ARGV-Array ARGV Ja
$$ $PROCESS_ID, $PID Prozess-ID Prozess PID Ja
$? $CHILD_STATUS Status des zuletzt beendeten Kindprozesses nil Ja
$LOAD_PATH, $:, $-I Array von Suchpfaden Ruby-Standardwerte Ja
$LOADED_FEATURES, $" Array von Ladepfaden Ruby-Standardwerte Ja

Debugging

Variable English Enthält Initial Nur-Lese Zurückgesetzt durch
$FILENAME Von der Methode ARGF.filename zurückgegebener Wert Kommandozeilenargument oder „-“ Ja
$DEBUG Ob die Option -d oder --debug gegeben wurde Kommandozeilenoption Nein
$VERBOSE Ob die Option -V oder -W gegeben wurde Kommandozeilenoption Nein

Andere Variablen

Variable English Enthält Initial Nur-Lese Zurückgesetzt durch
$-F, $; Mit der Kommandozeilenoption -F angegebener Separator
$-a Ob die Option -a gegeben wurde Ja
$-i Mit der Kommandozeilenoption -i angegebene Erweiterung Nein
$-l Ob die Option -l gegeben wurde Ja
$-p Ob die Option -p gegeben wurde Ja
$F Array von $_, aufgeteilt nach $-F

Ausnahmen

$! (Ausnahme)

Enthält das von Kernel#raise gesetzte Exception-Objekt

begin
  raise RuntimeError.new('Boo!')
rescue RuntimeError
  p $!
end

Ausgabe

#<RuntimeError: Boo!>

English - $ERROR_INFO

$@ (Backtrace)

Gleich wie $!.backtrace; gibt ein Array von Backtrace-Positionen zurück

begin
  raise RuntimeError.new('Boo!')
rescue RuntimeError
  pp $@.take(4)
end

Ausgabe

["(irb):338:in `<top (required)>'",
 "/snap/ruby/317/lib/ruby/3.2.0/irb/workspace.rb:119:in `eval'",
 "/snap/ruby/317/lib/ruby/3.2.0/irb/workspace.rb:119:in `evaluate'",
 "/snap/ruby/317/lib/ruby/3.2.0/irb/context.rb:502:in `evaluate'"]

English - $ERROR_POSITION.

Abgeglichene Daten

Diese globalen Variablen speichern Informationen über den letzten erfolgreichen Abgleich im aktuellen Geltungsbereich.

Details und Beispiele finden Sie unter Regexp Global Variables.

$~ (MatchData)

MatchData-Objekt, das aus dem Abgleich erstellt wurde; Thread-lokal und Frame-lokal.

English - $LAST_MATCH_INFO.

$& (Abgeglichener Teilstring)

Der abgeglichene String.

English - $MATCH.

$` (Pre-Match-Teilstring)

Der String links vom Treffer.

English - $PREMATCH.

$' (Post-Match-Teilstring)

Der String rechts vom Treffer.

English - $POSTMATCH.

$+ (Zuletzt abgeglichene Gruppe)

Die zuletzt abgeglichene Gruppe.

English - $LAST_PAREN_MATCH.

$1, $2, usw. (Abgeglichene Gruppe)

Für $n die n-te Gruppe des Abgleichs.

Kein Englisch.

Trennungen

$/ (Eingabedatensatztrennung)

Eine Eingabedatensatztrennung, initial neue Zeile. Gesetzt durch die Kommandozeilenoption -0.

Das Setzen auf einen Wert ungleich nil durch andere Mittel als die Kommandozeilenoption ist veraltet.

English - $INPUT_RECORD_SEPARATOR, $RS.

Aliasiert als $-0.

$\ (Ausgabedatensatztrennung)

Eine Ausgabedatensatztrennung, initial nil.

Kopiert von $/, wenn die Kommandozeilenoption -l gegeben wird.

Das Setzen auf einen Wert ungleich nil durch andere Mittel als die Kommandozeilenoption ist veraltet.

English - $OUTPUT_RECORD_SEPARATOR, $ORS.

Streams

$stdin (Standardeingabe)

Der aktuelle Standard-Eingabestream; initial

$stdin # => #<IO:<STDIN>>

$stdout (Standardausgabe)

Der aktuelle Standard-Ausgabestream; initial

$stdout # => #<IO:<STDOUT>>

$stderr (Standardfehler)

Der aktuelle Standard-Fehlerstrom; initial

$stderr # => #<IO:<STDERR>>

$< (ARGF oder $stdin)

Zeigt auf den Stream ARGF, wenn nicht leer, sonst auf den Stream $stdin; nur Lesezugriff.

English - $DEFAULT_INPUT.

$> (Standardmäßige Standardausgabe)

Ein Ausgabestream, initial $stdout.

English - $DEFAULT_OUTPUT

$. (Eingabeposition)

Die Eingabeposition (Zeilennummer) im zuletzt gelesenen Stream.

English - $INPUT_LINE_NUMBER, $NR

$_ (Zuletzt gelesene Zeile)

Die Zeile (String) aus dem zuletzt gelesenen Stream.

English - $LAST_READ_LINE.

Prozesse

$0

Initial enthält den Namen des auszuführenden Skripts; kann neu zugewiesen werden.

$* (ARGV)

Zeigt auf ARGV.

English - $ARGV.

$$ (Prozess-ID)

Die Prozess-ID des aktuellen Prozesses. Gleiches wie Process.pid.

English - $PROCESS_ID, $PID.

$? (Kindstatus)

Initial nil, ansonsten das Process::Status-Objekt, das für den zuletzt beendeten Kindprozess erstellt wurde; Thread-lokal.

English - $CHILD_STATUS.

$LOAD_PATH (Ladepfad)

Enthält das Array von Pfaden, das von Kernel#load und Kernel#require durchsucht wird.

Die Singleton-Methode $LOAD_PATH.resolve_feature_path(feature) gibt zurück

Beispiele

$LOAD_PATH.resolve_feature_path('timeout')
# => [:rb, "/snap/ruby/317/lib/ruby/3.2.0/timeout.rb"]
$LOAD_PATH.resolve_feature_path('date_core')
# => [:so, "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/date_core.so"]
$LOAD_PATH.resolve_feature_path('foo')
# => nil

Aliasiert als $: und $-I.

$LOADED_FEATURES

Enthält ein Array der Pfade zu den geladenen Dateien

$LOADED_FEATURES.take(10)
# =>
["enumerator.so",
 "thread.rb",
 "fiber.so",
 "rational.so",
 "complex.so",
 "ruby2_keywords.rb",
 "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/enc/encdb.so",
 "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/enc/trans/transdb.so",
 "/snap/ruby/317/lib/ruby/3.2.0/x86_64-linux/rbconfig.rb",
 "/snap/ruby/317/lib/ruby/3.2.0/rubygems/compatibility.rb"]

Aliasiert als $".

Debugging

$FILENAME

Der von der Methode ARGF.filename zurückgegebene Wert.

$DEBUG

Initial true, wenn die Kommandozeilenoption -d oder --debug gegeben wurde, andernfalls initial false; kann im laufenden Programm auf beide Werte gesetzt werden.

Wenn true, wird jede ausgelöste Ausnahme an $stderr ausgegeben.

Aliasiert als $-d.

$VERBOSE

Initial true, wenn die Kommandozeilenoption -v oder -w gegeben wurde, andernfalls initial false; kann im laufenden Programm auf beide Werte oder auf nil gesetzt werden.

Wenn true, werden Ruby-Warnungen aktiviert.

Wenn nil, werden Warnungen deaktiviert, einschließlich der von Kernel#warn.

Aliasiert als $-v und $-w.

Andere Variablen

$-F

Die Standard-Feldtrennung in String#split; muss ein String oder ein Regexp sein und kann mit der Kommandozeilenoption -F gesetzt werden.

Das Setzen auf einen Wert ungleich nil durch andere Mittel als die Kommandozeilenoption ist veraltet.

Aliasiert als $;.

$-a

Ob die Kommandozeilenoption -a gegeben wurde; nur Lesezugriff.

$-i

Enthält die mit der Kommandozeilenoption -i gegebene Erweiterung oder nil, falls keine.

Ein Alias für ARGF.inplace_mode.

$-l

Ob die Kommandozeilenoption -l gesetzt wurde; nur Lesezugriff.

$-p

Ob die Kommandozeilenoption -p gegeben wurde; nur Lesezugriff.

$F

Wenn die Kommandozeilenoption -a gegeben ist, wird das Array, das durch Aufteilen von $_ nach $-F entsteht, zu Beginn jeder -l/-p-Schleife zugewiesen.

Veraltet

$=

$,

Vordefinierte globale Konstanten

Zusammenfassung

Streams

Konstante Enthält
STDIN Standard-Eingabestream.
STDOUT Standard-Ausgabestream.
STDERR Standard-Fehlerstrom.

Umgebung

Konstante Enthält
ENV Hash der aktuellen Umgebungsvariablennamen und -werte.
ARGF String-Konkatenation von auf der Kommandozeile angegebenen Dateien oder $stdin, falls keine vorhanden sind.
ARGV Array der gegebenen Kommandozeilenargumente.
TOPLEVEL_BINDING Binding des Top-Level-Scopes.
RUBY_VERSION String Ruby-Version.
RUBY_RELEASE_DATE String Ruby-Veröffentlichungsdatum.
RUBY_PLATFORM String Ruby-Plattform.
RUBY_PATCH_LEVEL String Ruby-Patchlevel.
RUBY_REVISION String Ruby-Revision.
RUBY_COPYRIGHT String Ruby-Copyright.
RUBY_ENGINE String Ruby-Engine.
RUBY_ENGINE_VERSION String Ruby-Engine-Version.
RUBY_DESCRIPTION String Ruby-Beschreibung.

Eingebettete Daten

Konstante Enthält
DATA File, der eingebettete Daten enthält (Zeilen nach __END__, falls vorhanden).

Streams

STDIN

Der Standard-Eingabestream (der Standardwert für $stdin)

STDIN # => #<IO:<STDIN>>

STDOUT

Der Standard-Ausgabestream (der Standardwert für $stdout)

STDOUT # => #<IO:<STDOUT>>

STDERR

Der Standard-Fehlerstrom (der Standardwert für $stderr)

STDERR # => #<IO:<STDERR>>

Umgebung

ENV

Ein Hash der aktuellen Umgebungsvariablennamen und -werte

ENV.take(5)
# =>
[["COLORTERM", "truecolor"],
 ["DBUS_SESSION_BUS_ADDRESS", "unix:path=/run/user/1000/bus"],
 ["DESKTOP_SESSION", "ubuntu"],
 ["DISPLAY", ":0"],
 ["GDMSESSION", "ubuntu"]]

ARGF

Die virtuelle Verkettung der auf der Kommandozeile angegebenen Dateien oder von $stdin, wenn keine Dateien angegeben wurden, "-" angegeben wird oder nachdem alle Dateien gelesen wurden.

ARGV

Ein Array der gegebenen Kommandozeilenargumente.

TOPLEVEL_BINDING

Die Binding des Top-Level-Scopes

TOPLEVEL_BINDING # => #<Binding:0x00007f58da0da7c0>

RUBY_VERSION

Die Ruby-Version

RUBY_VERSION # => "3.2.2"

RUBY_RELEASE_DATE

Der Veröffentlichungsdatum-String

RUBY_RELEASE_DATE # => "2023-03-30"

RUBY_PLATFORM

Die Plattformkennung

RUBY_PLATFORM # => "x86_64-linux"

RUBY_PATCHLEVEL

Der ganzzahlige Patchlevel für dieses Ruby

RUBY_PATCHLEVEL # => 53

Für eine Entwicklungsversion ist der Patchlevel -1.

RUBY_REVISION

Der Git-Commit-Hash für dieses Ruby

RUBY_REVISION # => "e51014f9c05aa65cbf203442d37fef7c12390015"

Der Copyright-String

RUBY_COPYRIGHT
# => "ruby - Copyright (C) 1993-2023 Yukihiro Matsumoto"

RUBY_ENGINE

Der Name der Ruby-Implementierung

RUBY_ENGINE # => "ruby"

RUBY_ENGINE_VERSION

Die Version der Ruby-Implementierung

RUBY_ENGINE_VERSION # => "3.2.2"

RUBY_DESCRIPTION

Die Beschreibung der Ruby-Implementierung

RUBY_DESCRIPTION
# => "ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]"

Eingebettete Daten

DATA

Definiert, wenn und nur wenn das Programm diese Zeile hat

__END__

Wenn definiert, ist DATA ein File-Objekt, das die Zeilen nach __END__ enthält und an der ersten dieser Zeilen positioniert ist

p DATA
DATA.each_line { |line| p line }
__END__

Ausgabe

#<File:t.rb>
"Foo\n"
"Bar\n"
"Baz\n"