just to clarify, the q and qw etc are not random characters to avoid collisions, you just have to consider them as abreviations:
q = single quote:allows you to write things like
q{
<a href = 'somewebsite.com'> show me the $! </a>
}
without having to escape the quotes (readability), and avoiding $ interpretation as variable
qq = double quote: allows you to write things like
qq{
<a href = "$location"> some random location! </a>
}
without having to escape the quotes, but with $variable interpretation
qx = quote & eXecute : allows you to write things like
qx{
ls "some directory with spaces"
}
qw = quote on whitespace : treats whitespace as a quote delimeter
qw{
one
two
}
(a list of two quoted words)
why do these exist? I'm not sure exactly. But they are a godsend when trying to quote things that are full of $, and " marks ( like other programming languages, or even raw text)