$ (expression
)
Expression
is evaluated and reduced to a string. After
that, $ (expression
) is replaced by the value of a variable
with such a name. You can use the $ function everywhere a
standard variable is allowed (assignments, conditional expressions, arrays ...).
This feature gives a high level of flexibility since you can build variable names within your scripts.
var_1 = "Some text"; var_name = "var_1";
Now, var_name
evaluates to var_1
and $ (var_name
) evaluates to the value of variable var_1
. In practice, the following statements:
print (var_1); print (var_name); print ($ (var_name));
would display:
Some text var_1 Some text
You can use $ function within conditional expressions:
if ($ (var_name) == "Some text") { print ("The squirrel that you kill in jest, dies in earnest."); print ("-- Henry David Thoreau"); }
Output will be:
The squirrel that you kill in jest, dies in earnest. -- Henry David Thoreau
You can also use $ function to assign variables: let's overwrite value stored within
var_1
:
$ (var_name) = "Some other text";
The $ function applies to every valid Cows expression; some assignments follows:
name = "foo_"; $ (name + "1") = "When I was 12, I went hunting with my father\n"; $ (name + "2") = "and we shot a bird. He was laying there and\n"; $ (name + "3") = "something struck me. Why do we call this fun to\n"; $ (name + "4") = "kill this creature [who] was as happy as I was when\n"; $ (name + "5") = "I woke up this morning.\n"; $ (name + "6") = "-- Marv Levy (football head coach)"; print (foo_1 + foo_2 + foo_3 + foo_4 + foo_5 + foo_6);
Cows' output will be:
When I was 12, I went hunting with my father and we shot a bird. He was laying there and something struck me. Why do we call this fun to kill this creature [who] was as happy as I was when I woke up this morning. -- Marv Levy (football head coach)
The $ function also applies to itself:
variable = "Some text"; var_name = "variable"; var_name_name = "var_name";
Now variable
, $ (var_name
)
and $ ($ (var_name_name
)) evaluate to Some text.
Similar considerations hold for arrays (We'll talk about arrays later so don't worry if you don't know about them yet).
my_array_1 [ ] = { "You ask people why they have deer heads on the wall.", "They always say, 'Because it's such a beautiful animal.'", "There you go. I think my mother's attractive, but I have", "photographs of her.", "-- Ellen DeGeneres" }; name = "my_array"; id = "1"; ifdef ( $ (name + "_" + id) [ ] ) { print ($ (name + "_" + id) [0]); print ($ (name + "_" + id) [1]); print ($ (name + "_" + id) [2]); print ($ (name + "_" + id) [3]); print ($ (name + "_" + id) [4]); }
Cows' output will be:
You ask people why they have deer heads on the wall. They always say, 'Because it's such a beautiful animal.' There you go. I think my mother's attractive, but I have photographs of her. -- Ellen DeGeneres
This manual can be downloaded from http://www.g-cows.org/.