Sponsored Content
Top Forums Shell Programming and Scripting Assignment operator without operand Post 302914210 by neutronscott on Friday 22nd of August 2014 06:16:48 PM
Old 08-22-2014
Most tests check for unset or null values.

Code:
mute@thedoctor:~$ f() { local foo; [[ $foo ]] || echo empty; }; f
empty
mute@thedoctor:~$ f() { local foo=; [[ $foo ]] || echo empty; }; f
empty

But you'll see a difference with something like this:

Code:
mute@thedoctor:~$ f() { local foo=; : ${foo=unset}; declare -p foo; }; f
declare -- foo=""
mute@thedoctor:~$ f() { local foo; : ${foo=unset}; declare -p foo; }; f
declare -- foo="unset"

This User Gave Thanks to neutronscott For This Post:
 

10 More Discussions You Might Find Interesting

1. Programming

what is diff b/w copy constructor and overloaded assignment operator

Helo i m new in c++. i m confuse about what is exact difference b/w copy constructor and overloaded assignment operator. Regards, Amit (3 Replies)
Discussion started by: amitpansuria
3 Replies

2. Shell Programming and Scripting

scalar variable assignment in perl + { operator

When reading over some perl code in a software document, I came across an assignment statement like this $PATH = ${PROJECT}/......./.... In this particular form of scalar variable assignment, what does the curly braces operators do ? Also, what is the benefit in doing scalar assignment this... (3 Replies)
Discussion started by: JamesGoh
3 Replies

3. Shell Programming and Scripting

syntax error: `-a' unexpected operator/operand in IF

When i tyr this, it gives me a syntax error...i tried removing quotes,removing spaces,replacing -eq with '='.. Can somebody suggest that is the problem? if ]; then (4 Replies)
Discussion started by: dba.admin2008
4 Replies

4. Programming

Need help compiling in C: lvalue required as left operand of assignment

Hi, I am trying to compile a program (not coded by me), and i'm getting this error: 203: error: lvalue required as left operand of assignment As you may be guessing, the program doesn't compile, the line number 203 is the following: ... (2 Replies)
Discussion started by: Zykl0n-B
2 Replies

5. Programming

c++ assignment operator overloading

Hello everyone! Suppose that I have something like this A a; a.mem=new int; A b = a; where class A { public: int * mem; A() : mem(NULL) { } ~A() { if (mem!=NULL) delete mem; (1 Reply)
Discussion started by: bashuser2
1 Replies

6. Programming

lvalue required as left operand of assignment

z < 0 ? z= z + 2*r*cos(theta) : z= z - 2*r*cos(theta); Does anyone know what is wrong here? I've got compiler msg: lvalue required as left operand of assignment All variables are "double". I'm using gcc compiler (but I don't think that matters) (5 Replies)
Discussion started by: EmilyTheStrange
5 Replies

7. Programming

"lvalue required as left operand of assignment" error in C

Hey all. I've been working on some fun with C and decided to write a Rock Paper Scissors game. The problem is, that when I try to compile the file, it gives "lvalue required as left operand of assignment" error. The error line is here: for ((point1=0 && point2=0); ((point1=3) || (point2=3));... (4 Replies)
Discussion started by: drouzzin
4 Replies

8. Homework & Coursework Questions

Compiler error "lvalue required as left operand of assignment"

1. After trying to compile code error is given Lvalue required as left operand of assignment. 2. Relevant commands, code, scripts, algorithms: if , else if 3. The attempts at a solution (include all code and scripts): /* File: incircles.cpp Created by: James Selhorst ... (2 Replies)
Discussion started by: c++newb
2 Replies

9. Programming

Need to understand the overloaded assignment operator behavior

Hi, In the following code, class A { public: void operator=(const A& rhs) { if (this == &rhs) cout << "self-assigned"; } }; class B { A a; // should not be a pointer member, (i.e) A* a }; int main() { B b; b = b; // Ans: self-assigned } I am really... (5 Replies)
Discussion started by: royalibrahim
5 Replies

10. Shell Programming and Scripting

Newbie question: modulo operator with negative operand, bug or feature?

Hi, I'm new to the Ash shell so my apologies if this is well known. In normal maths and other shells and languages I've used, the modulo operator always returns a positive remainder. For example see this discussion (first post so I can't hyperlink it): ... (11 Replies)
Discussion started by: FleetFoot
11 Replies
PPI::Statement::Variable(3pm)				User Contributed Perl Documentation			     PPI::Statement::Variable(3pm)

NAME
PPI::Statement::Variable - Variable declaration statements SYNOPSIS
# All of the following are variable declarations my $foo = 1; my ($foo, $bar) = (1, 2); our $foo = 1; local $foo; local $foo = 1; LABEL: my $foo = 1; INHERITANCE
PPI::Statement::Variable isa PPI::Statement::Expression isa PPI::Statement isa PPI::Node isa PPI::Element DESCRIPTION
The main intent of the "PPI::Statement::Variable" class is to describe simple statements that explicitly declare new local or global variables. Note that this does not make it exclusively the only place where variables are defined, and later on you should expect that the "variables" method will migrate deeper down the tree to either PPI::Statement or PPI::Node to recognise this fact, but for now it stays here. METHODS
type The "type" method checks and returns the declaration type of the statement, which will be one of 'my', 'local', 'our', or 'state'. Returns a string of the type, or "undef" if the type cannot be detected (which is probably a bug). variables As for several other PDOM Element types that can declare variables, the "variables" method returns a list of the canonical forms of the variables defined by the statement. Returns a list of the canonical string forms of variables, or the null list if it is unable to find any variables. symbols Returns a list of the variables defined by the statement, as PPI::Token::Symbols. TO DO
- Write unit tests for this SUPPORT
See the support section in the main module. AUTHOR
Adam Kennedy <adamk@cpan.org> COPYRIGHT
Copyright 2001 - 2011 Adam Kennedy. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. The full text of the license can be found in the LICENSE file included with this module. perl v5.10.1 2011-02-26 PPI::Statement::Variable(3pm)
All times are GMT -4. The time now is 02:56 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy