document updated 16 years ago, on Mar 30, 2008
Overview of programming languages with unquoted string literals, and use of
sigileds/unsigiled variables.
Unquoted string literals only
make
foo = Hello world
bar = $(subst world,universe,$(foo))
all:
@echo $(bar) # outputs "Hello universe"
Both quoted and unquoted string literals
sh
echo You are logged in as user: $user
echo "You're logged in as user: $user" # unlike in DOS/Windows, it's the shell/caller that parses argv, so these semantics are consistent regardless of what program is started
Perl
$str = Hello;
print "$str there"; # outputs "Hello there"
Unquoted strings ("barewords" in Perl parlance) were used in early versions of Perl, but are now heavily depcrecated and produce an error when use strict 'subs' is on. Since they're almost never used now, they're being removed in Perl 6.
Tcl
set str There
puts "Hello $str"
puts Hello$str ;# spaces are the argument-separater as well, so spaces can't be included in unquoted literals
HTML
<hr class=greenbar><hr class="bluebar">
HTML doesn't have variable interpolation or concatenation though, so it's not as good of a comparison.
Both quoted and unquoted string literals, and both sigil and unsigiled variables
AutoHotkey
var1 = This script is %A_ScriptName%
var2 := var1 . " and it is good"