At 20:11 +0900 12/9/07, Peter N Lewis wrote:
>At 19:01 -0500 8/12/07, Dan Neville wrote:
>>Does anyone know how to make a Mac OS alias in Perl?  So, I wish to have Perl 
>>create aliases in multiple directories rather than copy the original file.
>
>There actually is no API call to create an alias file.
>
>You can do it in Perl as described at
>
><http://use.perl.org/~pudge/journal/10437>
>
>Alternatively, you can make a new alias via AppleScripting the Finder as:
>
>set thaAlias to "Harddisk:Users:peter:thefile.cpp" as alias
>
>tell application "Finder"
>       set f to make new alias file at desktop to thaAlias
>end tell

If you're not into the O-O stuff involved with the AppleScript modules, and 
you're not in a hurry, it's possible to invoke the osascript tool from within 
perl using backticks. You can create a string of AppleScript commands to pass 
to it with simple perl concatenations like ".=" or you can use a << "here" 
document with perl's here or with shell's here depending on how you set the 
backticks.

Test your AppleScript code with Script Editor first.

Using Finder is pretty much required because Finder "owns" the specification 
for an alias file. I have never seen a formal description of that or, for that 
matter, an alias resource. They are based on the file-id number which never 
repeats as files are created on a partition but there is more to it because 
that doesn't always work. Aliases do survive a file name change by the user and 
they use volume names so that Finder can request a floppy by name if an old 
alias pops up. What can cause an alias to fail is an editor that always writes 
the changed file to a newly created copy and then changes the names around so 
the original becomes the backup. The alias will point to the original while a 
symbolic link will point to the new.

-- 

Applescript syntax is like English spelling:
Roughly, though not thoroughly, thought through.

Reply via email to