It works on scalar data; the data doesn't have to be in files. Look
at the 'Data' parameter to encrypt and sign, in particular; that
lets you specify the data to be encrypted/signed as a scalar
string, rather than as a filename.
And all of the methods return data as a scalar; they don't write
data to a file.
Furthermore, you can always go under the hood and use the
lower-level interface in the other modules if you wish. I will
add some "SEE ALSO" sections to the main Crypt::OpenPGP docs,
but the other classes are all documented (basically :), so they
should be useable on their own.
BTW: As for tutorial and examples: at the moment the best I can
offer for examples is the test suite and the SYNOPSIS. Examples
will come in the future.