develooper Front page | perl.perl6.users | Postings from August 2022

Re: BEGIN {} question

Thread Previous | Thread Next
From:
ToddAndMargo via perl6-users
Date:
August 30, 2022 01:26
Subject:
Re: BEGIN {} question
Message ID:
bb2b1a15-b406-4864-5ec4-e12f68972d69@zoho.com
On 8/29/22 13:03, ToddAndMargo via perl6-users wrote:
> On 8/28/22 15:58, ToddAndMargo via perl6-users wrote:
>> Hi All,
>>
>> I am thinking of using
>>
>>     BEGIN {}
>>
>> to fire up a splash screen (libnotify).
>>
>> Question: is what happens between the brackets
>> isolated from the rest of the code?   If I set
>> variable values or declare variables, are they
>> wiped out, etc.?
>>
>> Many thanks,
>> -T
> 
> Follow up:
> 
> Thank you all for the help!
> 
> My splash screen pops up whilst the
> rest of the program compiles.
> 
> Here is my BEGIN code.   If you are
> wondering why all the variables when
> I could just write it in the run line,
> it is becasue the names of the variables
> and the comments next to them tell me what
> the parameters of notify-send are and
> how to use them.  Much easier to maintain.
> 
> 
> 
> #!/usr/bin/env perl6
> 
> use RunNoShellLib :RunNoShell, :RunNoShellCode, :RunNoShellErr;
> 
> BEGIN {
>     # Splash Screen
> 
>   ( my $ProgramName   = $?FILE ) ~~ s|.*"/"||;
>     my Str $NotifyStr = "\nStarting $ProgramName\n";
>     my Str $Icon      = "/home/linuxutil/Images/Info.png";
>     my Str $Title     = "$ProgramName Splash Screen";
>     my Str $Timeout   = "8000";  # milliseconds
> 
>     RunNoShell( "notify-send -u normal -t \"$Timeout\" -i \"$Icon\" 
> \"$Title\" \"$NotifyStr\"" );
> }
> 
> 
> 
> :-)
> 
> Love Raku!
> 
> -T


I changed my BEGIN a bit.  Send-notify open on the right under the last 
notification.

Zenity allow me to open up right in the middle to the
screen.

And I had to switch from run to shell to get zenity
to detach.  Otherwise the compiler stops until
zenity returns


BEGIN {
    # Splash Screen

  ( my $ProgramName   = $?FILE ) ~~ s|.*"/"||;
    my Str $NotifyStr = "\nStarting $ProgramName\n";
    my Str $Icon      = "/home/linuxutil/Images/Info.png";
    my Str $Title     = "$ProgramName Splash Screen";
    # my Str $Timeout   = "8000";  # notify-send = milliseconds
    my Str $Timeout   = "8";       # zenity = seconds

    # Note: zenity seems to not detach when run without a shell
    # RunNoShell( "zenity --info --title \"$Title\" --text 
\"$NotifyStr\" --width=220 --timeout=$Timeout" );
    shell "zenity --info --title \"$Title\" --text \"$NotifyStr\" 
--width=220 --timeout=$Timeout &";
}


-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Computers are like air conditioners.
They malfunction when you open windows
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About